スキル一覧に戻る
fractary

target-matcher

by fractary

4🍴 0📅 2026年1月10日
GitHubで見るManusで実行

SKILL.md


name: target-matcher description: Matches targets against configured patterns for work-ID-free planning tools: Bash, Read

Target Matcher Skill

When 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.

<CRITICAL_RULES>

  1. USE SCRIPT - Always use the match-target.sh script for pattern matching
  2. RESPECT SPECIFICITY - More specific patterns take precedence over general ones
  3. HANDLE NO MATCH - When no pattern matches, check require_match config setting
  4. RETURN FULL CONTEXT - Include all metadata for the planner to use </CRITICAL_RULES>

Step 1: Execute Target Matching

Run the match-target.sh script:

plugins/faber/skills/target-matcher/scripts/match-target.sh \
  "$TARGET" \
  --config "$CONFIG_PATH" \
  --project-root "$PROJECT_ROOT"

Step 2: Parse Result

The script returns JSON with:

  • status: "success", "no_match", or "error"
  • match: The matched target definition with metadata
  • all_matches: All matching definitions (for debugging)
  • message: Human-readable result message

Step 3: Return Target Context

Return the match result for use by the planner.

<PATTERN_MATCHING>

Supported Patterns

The matcher supports glob patterns:

  • * - Matches anything except /
  • ** - Matches any number of path segments
  • ? - Matches single character
  • [abc] - Character class

Examples:

PatternMatchesDoes Not Match
ipeds/*ipeds/admissions, ipeds/financeipeds/data/2023
src/**src/auth/login.ts, src/utils.tstest/auth.ts
plugins/*/plugins/faber/, plugins/repo/plugins/faber/skills
*.mdREADME.md, CLAUDE.mdsrc/readme.md

Specificity Rules

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=890
  • src/** → prefix=4, wildcards=1, index=1 → score=389
  • Winner: src/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>

Success Match

{
  "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'"
}

No Match (with default)

{
  "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'"
}

Error (require_match=true)

{
  "status": "error",
  "input": "unknown/path",
  "match": null,
  "all_matches": [],
  "message": "No target definition matches 'unknown/path'. Configure targets in .fractary/plugins/faber/config.json"
}

<ERROR_HANDLING>

ErrorAction
Config not foundReturn no_match with default type
No targets sectionReturn no_match with default type
Invalid JSONReturn error status
No match + require_match=trueReturn error status

</ERROR_HANDLING>

Used By

  • faber-planner agent - To resolve target context before creating plans

Configuration

Targets 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.

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です