Matches targets against configured patterns for work-ID-free planning
Matches target inputs against configured glob patterns to determine entity type and metadata for work-ID-free planning. Used when `/fractary-faber:plan <target>` is executed without a `--work-id` parameter.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/match-target.shWhen a user runs /fractary-faber:plan <target> without a --work-id, this skill
determines what type of entity the target represents and retrieves associated metadata.
</CONTEXT>
<CRITICAL_RULES>
match-target.sh script for pattern matchingrequire_match config settingRun the match-target.sh script:
plugins/faber/skills/target-matcher/scripts/match-target.sh \
"$TARGET" \
--config "$CONFIG_PATH" \
--project-root "$PROJECT_ROOT"
The script returns JSON with:
status: "success", "no_match", or "error"match: The matched target definition with metadataall_matches: All matching definitions (for debugging)message: Human-readable result messageReturn the match result for use by the planner.
</WORKFLOW><PATTERN_MATCHING>
The matcher supports glob patterns:
* - Matches anything except /** - Matches any number of path segments? - Matches single character[abc] - Character classExamples:
| Pattern | Matches | Does Not Match |
|---|---|---|
ipeds/* | ipeds/admissions, ipeds/finance | ipeds/data/2023 |
src/** | src/auth/login.ts, src/utils.ts | test/auth.ts |
plugins/*/ | plugins/faber/, plugins/repo/ | plugins/faber/skills |
*.md | README.md, CLAUDE.md | src/readme.md |
When multiple patterns match, specificity determines the winner:
Scoring Formula:
score = (literal_prefix_length * 100) - (wildcard_count * 10) - definition_index
Example:
src/auth/** → prefix=9, wildcards=1, index=0 → score=890src/** → prefix=4, wildcards=1, index=1 → score=389src/auth/** (higher score)Tie-Breaking: If two patterns have identical scores, the first defined pattern wins. A warning is logged about the ambiguity.
</PATTERN_MATCHING>
<OUTPUTS>{
"status": "success",
"input": "ipeds/admissions",
"match": {
"name": "ipeds-datasets",
"pattern": "ipeds/*",
"type": "dataset",
"description": "IPEDS education datasets for ETL processing",
"metadata": {
"entity_type": "dataset",
"processing_type": "etl",
"expected_artifacts": ["processed_data", "validation_report"]
},
"workflow_override": null,
"score": 490,
"specificity": {
"literal_prefix_length": 5,
"wildcard_count": 1,
"definition_index": 0
}
},
"all_matches": [...],
"message": "Matched 'ipeds/admissions' to 'ipeds-datasets'"
}
{
"status": "no_match",
"input": "unknown/path",
"match": {
"name": null,
"pattern": null,
"type": "file",
"description": "Default target type (no pattern matched)",
"metadata": {},
"workflow_override": null
},
"all_matches": [],
"message": "No pattern matched 'unknown/path', using default type 'file'"
}
{
"status": "error",
"input": "unknown/path",
"match": null,
"all_matches": [],
"message": "No target definition matches 'unknown/path'. Configure targets in .fractary/plugins/faber/config.json"
}
</OUTPUTS>
<ERROR_HANDLING>
| Error | Action |
|---|---|
| Config not found | Return no_match with default type |
| No targets section | Return no_match with default type |
| Invalid JSON | Return error status |
| No match + require_match=true | Return error status |
</ERROR_HANDLING>
<INTEGRATION>faber-planner agent - To resolve target context before creating plansTargets are configured in .fractary/plugins/faber/config.json:
{
"targets": {
"definitions": [
{
"name": "ipeds-datasets",
"pattern": "ipeds/*",
"type": "dataset",
"description": "IPEDS education datasets",
"metadata": {
"entity_type": "dataset",
"processing_type": "etl"
}
}
],
"default_type": "file",
"require_match": false
}
}
See the config schema at plugins/faber/config/config.schema.json for full documentation.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.