{"id":"270bedfe-5f9c-45b6-a276-c09606092b6e","shortId":"p2Pnkd","kind":"skill","title":"skill-forge","tagline":"Validate, fix, and publish skills as GitHub repos. Structures workflow skills for execution fidelity. Registers skills across platforms via symlinks and guides first-use onboarding. Use when the user says \"create a skill\", \"forge a skill\", \"review this skill repo\", \"audit this sk","description":"# Skill Forge\n\nSkill engineering methodology and publishing pipeline. Defines what \"well-engineered skill\" means, validates skills against that standard, and produces publishable GitHub repos.\n\n## Three-Dimension Mental Model\n\nSkill engineering decisions split along three orthogonal dimensions. Keep them separate — mixing causes self-contradictory choices.\n\n| Dimension | Question | Decides |\n|-----------|----------|---------|\n| **A. Entry** | Should this be its own skill? | New capability skill / new rule-skill / just a reference file |\n| **B. Dependency** | How do skills relate to each other? | Runtime (setup.sh, cross-repo OK) vs Maintenance (must ship together) |\n| **C. Publishing** | How to package for distribution? | Single Skill repo / Collection repo / In-repo |\n\nEach reference below covers ONE dimension (mostly):\n- `references/publishing-strategy.md` — Dimension C\n- `references/rule-skill-pattern.md` — Dimension A (for rule-skills specifically)\n- `references/skill-composition.md` — Dimension B\n- `references/anti-graceful-skip.md` — orthogonal quality check (applies to all dimensions)\n\nWhen a decision seems to conflict, check which dimension you're reasoning about. A/B/C answers do not constrain each other.\n\n## Engagement Principles\n\nThese rules always apply. Read them before acting.\n\n1. **Assess before acting** — first step is always understanding the situation (scan, inventory, read)\n2. **Report before modifying** — show findings, get user approval, then act\n3. **Security > Structure > Quality > Polish** — when multiple issues exist, fix in this priority\n4. **Default to local-ready** — forge runs through validation and fixes until local-ready. User can stop at any point\n5. **One skill at a time for changes** — diagnose in batch, modify one by one with user confirmation\n6. **Local-ready = publish-ready** — publishing only sends to remote, never re-validates\n7. **Understand context** — a skill may belong to a tool, or relate to other skills. Don't treat each in isolation\n8. **Follow module interfaces** — when the procedure calls a reference file, read the file and follow its EP. The module's own EP is the authority, not any inline summary in the parent\n9. **Report what you can't resolve** — severity follows the check's own criteria, not assumed user preference. A finding explained by another explicit rule is resolved, not a discrepancy — dismiss it with the reason\n\n## Execution Procedure\n\nFollow the pseudocode step by step. At STEP 2, write a plan file with per-item checklists — this IS your execution checklist. Re-read the plan before each item to stay on track.\n\n### Forge\n\n**Trigger**: \"review\", \"check\", \"audit\", \"audit this project\", \"audit all my skills\", \"clean up my skills\", \"create a skill\", \"forge a skill\", \"build a skill for X\", \"publish this skill\", \"push this to GitHub\", \"put this on GitHub\"\n\n```python\ndef forge(target):\n    # STEP 0: Environment\n    run(\"scripts/setup.sh\")                            # exit non-zero → STOP\n    config = assess_config_needs()                     # references/skill-configuration.md\n    if not config: assess_and_guide(target)            # references/onboarding.md\n\n    # STEP 1: Discover — paths and classification ONLY\n    classified = discover_and_classify(target)         # references/project-audit.md\n    # Find: SKILL.md (any depth), rules files, project instructions, setup scripts\n    #\n    # BOUNDARY: Discovery reads file PATHS and FRONTMATTER (for classification).\n    # Discovery also reads project standards (CLAUDE.md, AGENTS.md) — shared context.\n    # Discovery does NOT read: SKILL.md body, reference file content.\n    # Discovery does NOT validate: quality, structure, reference integrity.\n    # Discovery does NOT check git log, git diff, or previous review reports.\n    # Every review is a FULL review — no incremental/delta mode, no \"nothing changed\n    # since last review\" shortcuts. Prior results do not reduce current scope.\n    # Content reading and validation happen in STEP 3, driven by the plan.\n    # If you finish STEP 1 having already validated content → you collapsed the loop.\n\n    if classified:                                     # --- Existing items ---\n\n    else:                                              # --- Nothing found ---\n        context = detect_existing()                    # scan skills dirs + conversation\n        if len(context) > 1: context = ask_user(\"Which existing skill?\")\n        elif not context: ask_user(\"What does this skill do? When should it trigger?\")\n        search_ecosystem(target)                       # npx skills find / skills.sh\n\n        # Workspace: standalone + design-heavy → full workspace with backstage\n        # Signals: public/publishable, 3+ expected references, multi-session,\n        #   user mentioned design docs. Rule-skill/in-repo/prototype → skip.\n        if assess_workspace_need(name, context):       # HITL — user confirms\n            Skill(\"repo-scaffold\", f\"scaffold {name}, git init but skip push\")\n            path = f\"{config.skill_workspace}/{name}-project/{name}/\"\n        else:\n            path = f\"{config.skill_workspace}/{name}/\"\n\n        source_docs = detect_source_documents(context) # backstage, research, outputs\n        scaffold_skill_md(path, context)                # follows references/skill-format.md standards\n        ep_contract = extract_ep_signatures(path)      # function calls in SKILL.md EP\n\n        if source_docs:\n            transform_references(source_docs, ep_contract)\n        else:\n            write_references(path, ep_contract)\n\n        assert all_ep_calls_have_matching_defs(path)   # GATE\n\n        readme = Skill(\"readme-craft\", f\"create {path}\")  # references/templates.md\n        assert readme.delivered                        # README required for local ready\n        write_artifacts(path)                          # LICENSE, .gitignore — skip if exist\n        items = [SkillItem(path)]\n\n    # From here: all items — new or existing — go through the same pipeline.\n    # Capability detection is NOT a separate step. Each reference module defines\n    # its own applicability criteria. The validation tables cover every reference.\n    # No explicit caps.X enumeration — all references are checked uniformly.\n\n    # STEP 2: Plan — GATE: file must exist AND be per-item structured before Step 3\n    plan_path = f\"/tmp/skill-forge-{name}.md\"\n    delete_if_exists(plan_path)                        # always fresh, no resume between runs\n\n    # Plan MUST be organized per-item, NOT per-check-type.\n    # Each discovered item gets its own top-level checklist entry with sub-steps.\n    # Step 3 iterates this plan item by item — no plan means no loop.\n    #\n    # Plan structure (every plan follows this, no exceptions):\n    #\n    #   ## Steps\n    #   - [ ] 1. Validate <item-path>\n    #     - [ ] Security scan\n    #     - [ ] Validate (all table rows)\n    #   - [ ] 2. Validate <item-path>\n    #     - [ ] ...\n    #   ## Findings                                     # appended by STEP 3b\n    #   ### <skill-name>\n    #   - [ ] must-fix | check | file | description\n    #   - [ ] suggestion | check | file | description\n    #   ## Progress\n    #   Completed: 0 / N\n    #\n    # STEP 3a checks off validation steps. STEP 3b appends ## Findings.\n    # STEP 3c reads ## Findings, fixes [ ] rows, marks [x].\n    # STEP 3d runs readme-craft + self-review on TARGET root (not per-item).\n\n    write_plan(plan_path, items)                       # use Bash if Write tool requires Read\n    assert file_exists(plan_path)\n    assert plan.is_per_item_structured                 # GATE: each item = top-level entry + sub-steps\n    assert plan.top_level_step_count >= len(items)     # GATE: count top-level entries ≥ discovered items\n    # ↑ If the plan batched N items into fewer entries, this fails. Rewrite: one entry per item.\n    # review_and_update_plan between major steps: references/execution-procedure.md\n\n    # STEP 3a: Validate — in batches of up to 5, one agent per item\n    plan.items.sort(priority=\"security > in-repo > personal > product > rules\")\n    findings_dir = f\"/tmp/skill-forge-findings-{name}/\"\n    rm_rf(findings_dir)                                # clean stale results from prior runs\n    mkdir(findings_dir)\n\n    for batch in chunk(plan.items, 5):                 # at most 5 at a time\n        agents = []\n        for item in batch:\n            findings_path = f\"{findings_dir}/{item.name}.md\"\n            agents.append(Agent(\n                f\"Validate ONE skill: {item.path}. \"\n                f\"Read the Security/Structure/Quality/Publishing validation tables \"\n                f\"in {skill_forge_skill_md}, then read {item.skill_md} and EVERY \"\n                f\"file under {item.path}/references/. \"\n                f\"Check every row in the validation tables against SKILL.md and each reference file. \"\n                f\"Write one row per check to {findings_path}: \"\n                f\"'- PASS | check | file | description' or \"\n                f\"'- [ ] must-fix/suggestion | check | file | description'. \"\n                f\"Do NOT skip rows. Do NOT fix. Write to file only.\"\n            ))\n        run_parallel(agents)                           # launch this batch\n        # WAIT for batch to complete. Do NOT launch next batch until all findings\n        # files in this batch exist and pass the coverage assert.\n        for item in batch:                             # collect before next batch\n            findings_path = f\"{findings_dir}/{item.name}.md\"\n            assert file_exists(findings_path)          # agent must have written findings\n            findings = read(findings_path)\n            assert row_count(findings) >= len(VALIDATION_TABLE_ROWS)\n            review_and_update_plan(plan_path, item, \"validated\")\n\n    # STEP 3b: Aggregate + report (Observe-Then-Act Phase B — references/execution-procedure.md §10)\n    # 1. Extract [ ] rows from {findings_dir}/*.md, append as ## Findings to {plan_path}\n    # 2. Cross-item analysis: identify systemic patterns across finding files\n    # 3. Report plan path + patterns to user\n    aggregate_and_append(findings_dir, plan_path)      # [ ] rows → ## Findings in plan\n    patterns = cross_item_analysis(findings_dir)       # §10 Phase B: full-picture patterns\n    report_to_user(plan_path, patterns)\n\n    # STEP 3c: Fix — ## Findings in plan file is the todo list.\n    # Each [ ] row = one fix. Mark [x] when done.\n    fix_findings(plan_path)\n    assert no_unchecked_must_fix(plan_path)\n\n    # STEP 3d: Target-level quality gates — run on TARGET root, not per-item\n    # These apply whether target is a standalone skill or a collection.\n    rc_result = Skill(\"readme-craft\", f\"review {target}\")  # REQUIRED — use Skill tool\n    assert rc_result.delivered\n    sr_result = Skill(\"self-review\", target)               # REQUIRED — use Skill tool\n    assert sr_result.no_broken_dimensions\n\n    # Registration + git\n    conflicts = audit_registrations(target, config)    # references/registration-audit.md\n    if conflicts.critical: resolve_or_block()          # HITL\n    detect_and_register(target)                        # references/platform-registry.md\n    if not target.has_git: git_init(target)\n    assert local_ready(target)                         # see Local Ready Definition\n\n    # STEP 4: Publish (optional — only when trigger includes publish intent)\n    # Triggers: \"publish this skill\", \"push this to GitHub\", \"put this on GitHub\"\n    if publish_requested:\n        confirm_with_user(org=config.github_org, name=skill_name, visibility=\"public\")\n        run(f\"gh repo create {org}/{name} --public --source=. --push\")\n        # Non-GitHub: git remote add origin <url> && git push -u origin main\n        # GitHub metadata (description + topics) already applied by readme-craft Step 7\n        update_forge_config(skill_name)                # add to Published Skills\n        assess_cc_market(config)                       # references/platform-registry.md\n        print(f\"Install with: npx skills add {org}/{name}\")\n```\n\n### Parallel Execution\n\nIf your platform supports sub-agents (e.g., Claude Code `Agent` tool): setup.sh and discovery can run in parallel; independent items can validate in parallel; readme-craft then self-review are sequential.\n\n**One agent per item.** Each Step 3 validation agent handles exactly one discovered item — do not batch multiple items into a single agent. This ensures each item gets isolated context and full validation depth. Launch all item agents in parallel.\n\n## Security\n\nPre-flight gate. If must-fix findings → block push, stop validation.\n\n| Check | Criteria |\n|-------|----------|\n| Leaked secrets | Scan for: API keys (`sk-`, `ghp_`, `AKIA`, `xox[bpas]-`), tokens, passwords, private keys (`-----BEGIN.*PRIVATE KEY-----`). **Fix — block push** |\n| Credential files | `.env`, `credentials.json`, `*.pem`, `*.key` tracked → **Fix** |\n| .gitignore coverage | `.env*`, `node_modules/`, `.DS_Store`, IDE configs, OS files |\n\n## Validation\n\nOne pass, read every file, check everything. Each finding tagged by category. Before running, scan the project for its own quality standards (`CLAUDE.md`, `AGENTS.md`, `.editorconfig`, rules directories) — these add to the checks below. Break per-file review into plan sub-tasks; use sub-agents for parallelism.\n\n**Result types** — every validation table row produces exactly one result:\n- **PASS**: Meets the standard. Brief note on what was checked. Required for coverage proof.\n- **Must fix**: Deviates from standard with concrete risk. State what the standard says, what was found, and what goes wrong for users.\n- **Suggestion**: A better mechanism exists that would unlock higher capability. Describe the upgrade path and benefit. User decides.\n\nNo other result types. If it's not PASS, must-fix, or suggestion — it's PASS.\n\nFor each finding, explain the user impact — not which rule was violated. Standards are defined in the reference files; the validation tables below point to them. Each table row referencing a file constitutes the EP dispatch — the agent reads the reference's EP when evaluating that check (per batch principle, `references/execution-procedure.md` §7).\n\n### Structure\n\nOrganization, layout, file existence, dependencies.\n\n| Check | Standard |\n|-------|---------|\n| Frontmatter fields | `references/skill-format.md` §Standard Frontmatter |\n| `name` | `references/skill-format.md` §Standard Frontmatter — kebab-case, matches directory |\n| `description` format | `references/skill-format.md` §Standard Frontmatter — single-line, < 1024 chars |\n| Body size | `references/skill-format.md` §Body — under 500 lines |\n| References exist | All SKILL.md references resolve, no orphans |\n| Reference file frontmatter | Each .md in references/ must have `--- name + description ---` per `references/skill-format.md` §Reference Frontmatter |\n| Reference file size | Each reference file under 300 lines per `references/reference-extraction.md`; over 300 = must split |\n| Dependencies | `references/installation.md` — setup.sh handles each declared dependency |\n| Directory names | `references/skill-format.md` §Directory Taxonomy |\n| No junk files | Correct structure for single-skill / multi-skill repos |\n| Collection risks | `references/skill-composition.md` — 15+ skills, context flooding, naming |\n| Registration conflicts | `references/registration-audit.md` — workspace shadows, broken links |\n\n### Quality\n\nSKILL.md + references + scripts + assets reviewed as **one unit**. Read SKILL.md first, follow module references, check coherence across all files.\n\nShared checks (SKILL.md and every reference file):\n- Three-layer format + Positional Test + EP-Content alignment → `validate_format()` + `review_reference()` — `references/skill-format.md`\n- EP comment discipline — `references/execution-procedure.md` §5\n- Terminology consistency across all files\n\n| Check | Standard |\n|-------|---------|\n| Description coverage | Description covers key trigger scenarios from body |\n| Description clarity | Comprehensible to a stranger without project context |\n| Invocation reliability | `references/skill-invocation.md` |\n| Graceful skip | `references/anti-graceful-skip.md` |\n| Execution Procedure | `references/execution-procedure.md` — workflow skill + no EP = must fix |\n| Entry complexity | Multiple modes must produce different deliverables |\n| Script quality | `references/script-quality.md` |\n| In-repo skills | Full validation recursively; cross-vendor symlinks use relative paths |\n| Standard enforcement | Every reference must have an EP function call from SKILL.md — no call = 100% skip (`references/execution-procedure.md` §4) |\n| EP contract integrity | Bidirectional: (1) every `ref.function()` call in SKILL.md EP has a matching `def function()` in the reference; (2) every reference `def` is called from SKILL.md. Parameter names must match. Reference with data but no `def` = must fix |\n| EP field resolvability | Every data field referenced in EP pseudocode (`answers.X`, `context.Y`, `brief.Z`) must have a documented inference source. See `references/anti-graceful-skip.md` §Principle 5 + `references/execution-procedure.md` §4 Field-level resolvability |\n| Assets referenced | Every asset file referenced by SKILL.md or references |\n| Maintenance-rules need | `references/maintenance-guide.md` |\n| Onboarding need | `references/onboarding.md` — zero-config → PASS; first-use decisions or credentials needed → must fix |\n| Configuration need | `references/skill-configuration.md` — user-adjustable preferences? litmus test applies |\n| Rule-skill classification | `references/rule-skill-pattern.md` Mode A — is the skill itself a rule-skill? If yes, validate against rules-as-skills three-layer model |\n| Rule-skill conversion | `references/rule-skill-pattern.md` Mode B/C — project has rules that should be skills? detection + packaging |\n| Publishing model | `references/publishing-strategy.md` — single-skill vs collection, appropriate for project structure? |\n| Reference extraction | `references/reference-extraction.md` — sections that should be references? line count thresholds, index quality |\n\n### Publishing\n\nExternal-facing presentation and packaging.\n\n| Check | Standard |\n|-------|---------|\n| README quality | `references/readme-quality.md` — deferred to readme-craft in Fix Phase |\n| Dependency mirroring | SKILL.md dependencies mirrored in README |\n| Install command | `npx skills add <org>/<repo>` as primary |\n| No hardcoded paths | No personal paths (~/, /Users/) in published files |\n| LICENSE, .gitignore | `references/templates.md` — existence + content |\n| Script documentation | Document what scripts do and permissions needed |\n| GitHub metadata | Covered by readme-craft — do not duplicate |\n| docs/ accuracy | No stale content vs SKILL.md claims |\n| Unnecessary files | No lock files, > 1MB media, build artifacts |\n| Platform-specific instruction files | Skill repo MUST NOT contain `CLAUDE.md` / `AGENTS.md` / `.cursor/rules/` / `.github/copilot-instructions.md` or other single-platform agent instruction files — must-fix. See `references/project-audit.md` §Skill Repo: Platform Instruction Files Are Must-Fix and `rules-as-skills/SKILL.md` §In-Repo Rule-Skills §Cross-Platform Constraint |\n\n## Fix Phase\n\n**Plan-driven.** STEP 3b appends `## Findings` to the plan file (extracted from per-skill finding files). STEP 3c reads `[ ]` rows and fixes them, marking `[x]`. One file, entire lifecycle.\n\n1. **Fix** (STEP 3c) — read `## Findings` in plan file. Each `[ ]` row = one fix action. Execute, then `[ ]` → `[x]`. Assert: zero unchecked must-fix rows.\n2. **User decides** — must-fix is mandatory. Suggestion is optional (user approves/skips).\n3. **README** — REQUIRED skill invocation:\n\n   Run: `Skill(\"readme-craft\", \"review <path>\")`\n   Do not substitute with manual README review.\n   readme-craft owns universal README quality. skill-forge owns skill-specific standards (`references/readme-quality.md`). Both apply, domain wins.\n\n   If README does not exist, readme-craft will create it. After readme-craft completes,\n   check skill-specific standards from `references/readme-quality.md` and fix any gaps.\n\n4. Create missing repo artifacts (LICENSE, .gitignore) if they don't exist\n5. Update remaining artifacts to pass validation\n6. **Local registration** — detect platform roots, create symlinks:\n\n   See `references/platform-registry.md` for the full path matrix.\n   Paths found → symlink all. No paths → skip. User names undetected platform → create + link.\n   Never link one vendor path to another. Every consumer path points to the skill's source directory.\n   **In-repo skills**: cross-vendor symlinks like `.agents/skills/X → ../../.claude/skills/X` must use relative paths.\n\n7. **Git init** (if not already a git repo) + initial commit\n8. **Final quality review** — REQUIRED skill invocation:\n\n   Run: `Skill(\"self-review\", \"<skill-path>\")`\n   Do not substitute with manual quality check.\n   Do not declare local ready if self-review reports Broken dimensions.\n\n9. Verify all Local Ready criteria are met\n\n## Local Ready Definition\n\nA skill is \"local ready\" when ALL of the following are true:\n\n```\n<skill-name>/\n├── SKILL.md                           # validated (Step 3 passed)\n├── references/                        # if needed, all links resolve\n├── scripts/                           # if needed, setup.sh works\n├── README.md                          # audited by readme-craft\n├── LICENSE                            # exists\n└── .gitignore                         # matches template\n```\n\n- `git init` done, initial commit made\n- Local registration (symlinks) done for all detected platform roots\n- All must-fix issues resolved, suggestions addressed or acknowledged\n- README audited by readme-craft (not just manually checked)\n\n**Local ready = publish-ready.** The only remaining action is Step 4 (publish to remote).\n\n## Publish to Remote\n\nStep 4 of forge. Only runs when the trigger includes publish intent. Requires local ready.\n\n1. **Confirm** — remote target (`<org>/<skill-name>`, visibility), local ready status\n\n2. **Execute**:\n\n   ```bash\n   # Push to GitHub (default)\n   gh repo create <org>/<skill-name> --public --source=. --push\n\n   # Non-GitHub: ask for remote URL\n   git remote add origin <url> && git push -u origin main\n   ```\n\n3. **Update config** — add to `~/.config/skill-forge/config.md` \"Published Skills\"\n\n4. **Report**: *\"Your skill is on GitHub. Install with `npx skills add <org>/<skill-name>`.\"*\n\n**CC Market**: `assess_cc_market(config)` — `references/platform-registry.md`.\n\n## References\n\n- `references/installation.md` — setup.sh standard: dependency detection, installation, two outcomes\n- `references/skill-invocation.md` — Runtime invocation reliability: explicit `Skill(...)` call + output gate pattern\n- `references/onboarding.md` — Interactive first-use guidance pattern\n- `references/skill-configuration.md` — User preferences, config location, litmus test, stateless principle\n- `references/skill-format.md` — Format specification for SKILL.md and reference files (frontmatter, Execution Procedure, content alignment, positional test)\n- `references/skill-composition.md` — Composition philosophy: context budget, dependency tiers\n- `references/rule-skill-pattern.md` — Forge integration: detection, auto-creation, and packaging of rule-skills\n- `references/publishing-strategy.md` — Skill vs Collection publishing models (called by project-audit.md Classification)\n- `references/platform-registry.md` — Platform skill paths, detection logic, community directories\n- `references/templates.md` — README, LICENSE, and .gitignore skeletons\n- `references/readme-quality.md` — README writing, claim discipline, example rules\n- `references/script-quality.md` — Script size limits, module split triggers, dependency policy\n- `references/maintenance-guide.md` — In-repo maintenance-rules skill: when to create, required content, template, reference dimension classification (D1/D2/D3)\n- `references/anti-graceful-skip.md` — Default-execute principle, skip conditions, no-downside enhancements, Step 3 audit criteria\n- `references/execution-procedure.md` — Pseudocode + plan-as-checklist + GATE pattern + attention model + non-overlapping ownership for workflow skills\n- `references/project-audit.md` — Discovery, Classification, Plan File, Rules Conversion, Execution Order for project-level forge\n- `references/reference-extraction.md` — When to extract sections into references, index quality, line count thresholds\n- `references/registration-audit.md` — Pre-registration conflict detection: workspace shadows global, broken links, copy vs symlink","tags":["skill","forge","motiful","agent-skills","agentic-ai","ai-agents","ai-tools","claude-code","codex","context-engineering","cursor","developer-tools"],"capabilities":["skill","source-motiful","skill-skill-forge","topic-agent-skills","topic-agentic-ai","topic-ai-agents","topic-ai-tools","topic-claude-code","topic-codex","topic-context-engineering","topic-cursor","topic-developer-tools","topic-llm","topic-skills"],"categories":["skill-forge"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/motiful/skill-forge","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add motiful/skill-forge","source_repo":"https://github.com/motiful/skill-forge","install_from":"skills.sh"}},"qualityScore":"0.469","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 39 github stars · SKILL.md body (24,652 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T18:58:23.858Z","embedding":null,"createdAt":"2026-04-18T23:58:00.660Z","updatedAt":"2026-04-22T18:58:23.858Z","lastSeenAt":"2026-04-22T18:58:23.858Z","tsv":"'/../.claude/skills/x':2644 '/.config/skill-forge/config.md':2851 '/in-repo/prototype':683 '/references':1149 '/skill.md':2424 '/suggestion':1183 '/tmp/skill-forge-':859 '/tmp/skill-forge-findings-':1081 '/users':2338 '0':474,949 '1':211,497,605,631,922,1285,2125,2468,2809 '10':1284,1333 '100':2117 '1024':1904 '15':1979 '1mb':2379 '2':225,404,841,930,1298,2140,2492,2817 '3':236,596,670,855,901,1309,1601,2505,2717,2846,3013 '300':1943,1948 '3a':952,1057 '3b':936,958,1274,2441 '3c':962,1347,2456,2471 '3d':970,1377 '4':249,1467,2120,2184,2570,2787,2795,2854 '5':271,1064,1101,1104,2037,2182,2582 '500':1911 '6':289,2589 '7':305,1535,1873,2649 '8':326,2660 '9':359,2691 'a/b/c':194 'accuraci':2367 'acknowledg':2765 'across':20,1306,2008,2040 'act':210,214,235,1280 'action':2481,2784 'add':1517,1541,1556,1720,2329,2839,2849,2865 'address':2763 'adjust':2225 'agent':1066,1108,1121,1201,1248,1567,1571,1596,1603,1617,1632,1738,1859,2402 'agents.append':1120 'agents.md':534,1715,2394 'agents/skills/x':2643 'aggreg':1275,1316 'akia':1659 'align':2027,2920 'along':82 'alreadi':607,1528,2654 'also':529 'alway':205,218,867 'analysi':1302,1330 'anoth':381,2623 'answer':195 'answers.x':2170 'api':1655 'append':933,959,1292,1318,2442 'appli':177,206,1392,1529,2229,2540 'applic':823 'appropri':2281 'approv':233 'approves/skips':2504 'artifact':788,2382,2574,2585 'ask':633,641,2833 'assert':762,780,997,1002,1017,1227,1243,1257,1369,1415,1428,1458,2485 'assess':212,484,491,686,1545,2868 'asset':1995,2189,2192 'assum':374 'attent':3024 'audit':45,435,436,439,1435,2731,2767,3014 'author':351 'auto':2935 'auto-cr':2934 'b':117,172,1282,1335 'b/c':2263 'backstag':667,725 'bash':991,2819 'batch':281,1035,1060,1097,1112,1204,1207,1214,1221,1231,1235,1611,1870 'begin':1666 'belong':311 'benefit':1802 'better':1789 'bidirect':2124 'block':1444,1645,1670 'bodi':542,1906,1909,2053 'boundari':519 'bpas':1661 'break':1725 'brief':1755 'brief.z':2172 'broken':1430,1989,2689,3068 'budget':2927 'build':453,2381 'c':137,161 'call':333,743,765,2112,2116,2128,2145,2888,2949 'capabl':107,810,1796 'caps.x':833 'case':1893 'categori':1703 'caus':90 'cc':1546,2866,2869 'chang':278,577 'char':1905 'check':176,187,369,434,557,838,883,940,944,953,1151,1169,1175,1184,1649,1697,1723,1760,1868,1880,2006,2012,2043,2305,2559,2678,2775 'checklist':413,418,894,3021 'choic':94 'chunk':1099 'claim':2373,2970 'clariti':2055 'classif':501,527,2233,2952,2999,3035 'classifi':503,506,615 'claud':1569 'claude.md':533,1714,2393 'clean':443,1087 'code':1570 'coher':2007 'collaps':611 'collect':147,1232,1401,1976,2280,2946 'command':2326 'comment':2034 'commit':2659,2745 'communiti':2959 'complet':948,1209,2558 'complex':2079 'composit':2924 'comprehens':2056 'concret':1771 'condit':3007 'config':483,485,490,1438,1538,1548,1688,2209,2848,2871,2902 'config.github':1495 'config.skill':708,716 'configur':2220 'confirm':288,693,1491,2810 'conflict':186,1434,1985,3063 'conflicts.critical':1441 'consist':2039 'constitut':1854 'constrain':198 'constraint':2434 'consum':2625 'contain':2392 'content':545,589,609,2026,2346,2370,2919,2995 'context':307,536,621,630,632,640,690,724,732,1624,1981,2062,2926 'context.y':2171 'contract':737,755,761,2122 'contradictori':93 'convers':627,2260,3039 'copi':3070 'correct':1966 'count':1021,1025,1259,2294,3057 'cover':155,828,2048,2358 'coverag':1226,1681,1763,2046 'craft':775,974,1407,1533,1588,2314,2362,2514,2525,2550,2557,2735,2771 'creat':35,447,777,1506,2552,2571,2595,2615,2826,2993 'creation':2936 'credenti':1672,2216 'credentials.json':1675 'criteria':372,824,1650,2696,3015 'cross':129,1300,1328,2097,2432,2639 'cross-item':1299 'cross-platform':2431 'cross-repo':128 'cross-vendor':2096,2638 'current':587 'cursor/rules':2395 'd1/d2/d3':3000 'data':2154,2164 'decid':97,1804,2494 'decis':80,183,2214 'declar':1956,2681 'def':470,768,2135,2143,2157 'default':250,2823,3003 'default-execut':3002 'defer':2310 'defin':56,820,1836 'definit':1465,2701 'delet':862 'deliver':2085 'depend':118,1879,1951,1957,2318,2321,2877,2928,2981 'depth':512,1628 'describ':1797 'descript':942,946,1177,1186,1526,1896,1931,2045,2047,2054 'design':662,678 'design-heavi':661 'detect':622,721,811,1446,2271,2592,2753,2878,2933,2957,3064 'deviat':1767 'diagnos':279 'diff':561 'differ':2084 'dimens':75,85,95,157,160,163,171,180,189,1431,2690,2998 'dir':626,1079,1086,1095,1117,1240,1290,1320,1332 'directori':1718,1895,1958,1961,2633,2960 'disciplin':2035,2971 'discov':498,504,886,1030,1607 'discoveri':520,528,537,546,554,1575,3034 'discrep':388 'dismiss':389 'dispatch':1857 'distribut':143 'doc':679,720,749,753,2366 'document':723,2176,2348,2349 'domain':2541 'done':1364,2743,2750 'downsid':3010 'driven':597,2439 'ds':1685 'duplic':2365 'e.g':1568 'ecosystem':653 'editorconfig':1716 'elif':638 'els':618,713,756 'enforc':2104 'engag':201 'engin':51,60,79 'enhanc':3011 'ensur':1619 'entir':2466 'entri':99,895,1013,1029,1040,1045,2078 'enumer':834 'env':1674,1682 'environ':475 'ep':343,348,736,739,746,754,760,764,1856,1864,2025,2033,2075,2110,2121,2131,2160,2168 'ep-cont':2024 'evalu':1866 'everi':566,829,915,1144,1152,1695,1743,2015,2105,2126,2141,2163,2191,2624 'everyth':1698 'exact':1605,1748 'exampl':2972 'except':920 'execut':16,394,417,1560,2069,2482,2818,2917,3004,3040 'exist':244,616,623,636,794,804,846,864,999,1222,1245,1791,1878,1914,2345,2547,2581,2737 'exit':478 'expect':671 'explain':379,1825 'explicit':382,832,2886 'extern':2300 'external-fac':2299 'extract':738,1286,2286,2448,3050 'f':698,707,715,776,858,1080,1115,1122,1127,1133,1145,1150,1164,1173,1179,1187,1238,1408,1503,1551 'face':2301 'fail':1042 'fewer':1039 'fidel':17 'field':1883,2161,2165,2186 'field-level':2185 'file':116,336,339,408,514,522,544,844,941,945,998,1146,1163,1176,1185,1197,1218,1244,1308,1352,1673,1690,1696,1728,1840,1853,1877,1922,1937,1941,1965,2010,2017,2042,2193,2341,2375,2378,2387,2404,2414,2447,2454,2465,2476,2915,3037 'final':2661 'find':230,378,509,657,932,960,964,1078,1085,1094,1113,1116,1171,1217,1236,1239,1246,1252,1253,1255,1260,1289,1294,1307,1319,1324,1331,1349,1366,1644,1700,1824,2443,2453,2473 'finish':603 'first':27,215,2002,2212,2895 'first-us':26,2211,2894 'fix':5,245,260,939,965,1182,1194,1348,1360,1365,1373,1643,1669,1679,1766,1816,2077,2159,2219,2316,2407,2418,2435,2460,2469,2480,2490,2497,2567,2759 'flight':1638 'flood':1982 'follow':327,341,367,396,733,917,2003,2711 'forg':3,38,49,255,431,450,471,1136,1537,2532,2797,2931,3046 'format':1897,2021,2029,2909 'found':620,1780,2605 'fresh':868 'frontmatt':525,1882,1886,1890,1900,1923,1935,2916 'full':570,664,1337,1626,2093,2601 'full-pictur':1336 'function':742,2111,2136 'gap':2569 'gate':770,843,1007,1024,1382,1639,2890,3022 'get':231,888,1622 'gh':1504,2824 'ghp':1658 'git':558,560,701,1433,1454,1455,1515,1519,2650,2656,2741,2837,2841 'github':10,71,464,468,1483,1487,1514,1524,2356,2822,2832,2860 'github/copilot-instructions.md':2396 'gitignor':791,1680,2343,2576,2738,2965 'global':3067 'go':805 'goe':1783 'grace':2066 'guid':25,493 'guidanc':2897 'handl':1604,1954 'happen':593 'hardcod':2333 'heavi':663 'higher':1795 'hitl':691,1445 'ide':1687 'identifi':1303 'impact':1828 'in-repo':149,1072,2089,2425,2634,2984 'includ':1473,2803 'incremental/delta':573 'independ':1580 'index':2296,3054 'infer':2177 'init':702,1456,2651,2742 'initi':2658,2744 'inlin':354 'instal':1552,2325,2861,2879 'instruct':516,2386,2403,2413 'integr':553,2123,2932 'intent':1475,2805 'interact':2893 'interfac':329 'inventori':223 'invoc':2063,2509,2666,2884 'isol':325,1623 'issu':243,2760 'item':412,426,617,795,801,851,879,887,905,907,984,989,1005,1009,1023,1031,1037,1047,1068,1110,1229,1271,1301,1329,1390,1581,1598,1608,1613,1621,1631 'item.name':1118,1241 'item.path':1126,1148 'item.skill':1141 'iter':902 'junk':1964 'kebab':1892 'kebab-cas':1891 'keep':86 'key':1656,1665,1668,1677,2049 'last':579 'launch':1202,1212,1629 'layer':2020,2255 'layout':1876 'leak':1651 'len':629,1022,1261 'level':893,1012,1019,1028,1380,2187,3045 'licens':790,2342,2575,2736,2963 'lifecycl':2467 'like':2642 'limit':2977 'line':1903,1912,1944,2293,3056 'link':1990,2616,2618,2723,3069 'list':1356 'litmus':2227,2904 'local':253,263,291,785,1459,1463,2590,2682,2694,2699,2705,2747,2776,2807,2814 'local-readi':252,262,290 'locat':2903 'lock':2377 'log':559 'logic':2958 'loop':613,912 'made':2746 'main':1523,2845 'mainten':133,2200,2988 'maintenance-rul':2199,2987 'major':1053 'mandatori':2499 'manual':2520,2676,2774 'mark':967,1361,2462 'market':1547,2867,2870 'match':767,1894,2134,2151,2739 'matrix':2603 'may':310 'md':730,861,1119,1138,1142,1242,1291,1925 'mean':62,910 'mechan':1790 'media':2380 'meet':1752 'mental':76 'mention':677 'met':2698 'metadata':1525,2357 'methodolog':52 'mirror':2319,2322 'miss':2572 'mix':89 'mkdir':1093 'mode':574,2081,2235,2262 'model':77,2256,2274,2948,3025 'modifi':228,282 'modul':328,345,819,1684,2004,2978 'most':158 'multi':674,1973 'multi-sess':673 'multi-skil':1972 'multipl':242,1612,2080 'must':134,845,874,938,1181,1249,1372,1642,1765,1815,1928,1949,2076,2082,2107,2150,2158,2173,2218,2390,2406,2417,2489,2496,2645,2758 'must-fix':937,1180,1641,1814,2405,2416,2488,2495,2757 'n':950,1036 'name':689,700,710,712,718,860,1082,1497,1499,1508,1540,1558,1887,1930,1959,1983,2149,2612 'need':486,688,2202,2205,2217,2221,2355,2721,2727 'never':301,2617 'new':106,109,802 'next':1213,1234 'no-downsid':3008 'node':1683 'non':480,1513,2831,3027 'non-github':1512,2830 'non-overlap':3026 'non-zero':479 'note':1756 'noth':576,619 'npx':655,1554,2327,2863 'observ':1278 'observe-then-act':1277 'ok':131 'onboard':29,2204 'one':156,272,283,285,1044,1065,1124,1166,1359,1595,1606,1692,1749,1998,2464,2479,2619 'option':1469,2502 'order':3041 'org':1494,1496,1507,1557 'organ':876,1875 'origin':1518,1522,2840,2844 'orphan':1920 'orthogon':84,174 'os':1689 'outcom':2881 'output':727,2889 'overlap':3028 'own':2526,2533 'ownership':3029 'packag':141,2272,2304,2938 'parallel':1200,1559,1579,1585,1634,1740 'paramet':2148 'parent':358 'pass':1174,1224,1693,1751,1813,1821,2210,2587,2718 'password':1663 'path':499,523,706,714,731,741,759,769,778,789,797,857,866,988,1001,1114,1172,1237,1247,1256,1270,1297,1312,1322,1344,1368,1375,1800,2102,2334,2337,2602,2604,2609,2621,2626,2648,2956 'pattern':1305,1313,1327,1339,1345,2891,2898,3023 'pem':1676 'per':411,850,878,882,983,1004,1046,1067,1168,1389,1597,1727,1869,1932,1945,2451 'per-check-typ':881 'per-fil':1726 'per-item':410,849,877,982,1388 'per-skil':2450 'permiss':2354 'person':1075,2336 'phase':1281,1334,2317,2436 'philosophi':2925 'pictur':1338 'pipelin':55,809 'plan':407,423,600,842,856,865,873,904,909,913,916,986,987,1000,1034,1051,1268,1269,1296,1311,1321,1326,1343,1351,1367,1374,1731,2438,2446,2475,3019,3036 'plan-as-checklist':3018 'plan-driven':2437 'plan.is':1003 'plan.items':1100 'plan.items.sort':1069 'plan.top':1018 'platform':21,1563,2384,2401,2412,2433,2593,2614,2754,2954 'platform-specif':2383 'point':270,1845,2627 'polici':2982 'polish':240 'posit':2022,2921 'pre':1637,3061 'pre-flight':1636 'pre-registr':3060 'prefer':376,2226,2901 'present':2302 'previous':563 'primari':2331 'principl':202,1871,2181,2907,3005 'print':1550 'prior':582,1091 'prioriti':248,1070 'privat':1664,1667 'procedur':332,395,2070,2918 'produc':69,1747,2083 'product':1076 'progress':947 'project':438,515,531,711,1708,2061,2264,2283,3044 'project-audit.md':2951 'project-level':3043 'proof':1764 'pseudocod':398,2169,3017 'public':1501,1509,2827 'public/publishable':669 'publish':7,54,70,138,294,296,458,1468,1474,1477,1489,1543,2273,2298,2340,2779,2788,2791,2804,2852,2947 'publish-readi':293,2778 'push':461,705,1480,1511,1520,1646,1671,2820,2829,2842 'put':465,1484 'python':469 'qualiti':175,239,550,1381,1712,1991,2087,2297,2308,2529,2662,2677,3055 'question':96 'rc':1402 'rc_result.delivered':1416 're':191,303,420 're-read':419 're-valid':302 'read':207,224,337,421,521,530,540,590,963,996,1128,1140,1254,1694,1860,2000,2457,2472 'readi':254,264,292,295,786,1460,1464,2683,2695,2700,2706,2777,2780,2808,2815 'readm':771,774,782,973,1406,1532,1587,2307,2313,2324,2361,2506,2513,2521,2524,2528,2544,2549,2556,2734,2766,2770,2962,2968 'readme-craft':773,972,1405,1531,1586,2312,2360,2512,2523,2548,2555,2733,2769 'readme.delivered':781 'readme.md':2730 'reason':192,393 'recurs':2095 'reduc':586 'ref.function':2127 'refer':115,153,335,543,552,672,751,758,818,830,836,1162,1839,1862,1913,1917,1921,1927,1934,1936,1940,1993,2005,2016,2031,2106,2139,2142,2152,2198,2285,2292,2719,2873,2914,2997,3053 'referenc':1851,2166,2190,2194 'references/anti-graceful-skip.md':173,2068,2180,3001 'references/execution-procedure.md':1055,1283,1872,2036,2071,2119,2183,3016 'references/installation.md':1952,2874 'references/maintenance-guide.md':2203,2983 'references/onboarding.md':495,2206,2892 'references/platform-registry.md':1450,1549,2598,2872,2953 'references/project-audit.md':508,2409,3033 'references/publishing-strategy.md':159,2275,2943 'references/readme-quality.md':2309,2538,2565,2967 'references/reference-extraction.md':1946,2287,3047 'references/registration-audit.md':1439,1986,3059 'references/rule-skill-pattern.md':162,2234,2261,2930 'references/script-quality.md':2088,2974 'references/skill-composition.md':170,1978,2923 'references/skill-configuration.md':487,2222,2899 'references/skill-format.md':734,1884,1888,1898,1908,1933,1960,2032,2908 'references/skill-invocation.md':2065,2882 'references/templates.md':779,2344,2961 'regist':18,1448 'registr':1432,1436,1984,2591,2748,3062 'relat':122,316,2101,2647 'reliabl':2064,2885 'remain':2584,2783 'remot':300,1516,2790,2793,2811,2835,2838 'repo':11,44,72,130,146,148,151,696,1074,1505,1975,2091,2389,2411,2427,2573,2636,2657,2825,2986 'repo-scaffold':695 'report':226,360,565,1276,1310,1340,2688,2855 'request':1490 'requir':783,995,1411,1424,1761,2507,2664,2806,2994 'research':726 'resolv':365,385,1442,1918,2162,2188,2724,2761 'result':583,1089,1403,1418,1741,1750,1807 'resum':870 'review':41,433,564,567,571,580,977,1048,1265,1409,1422,1592,1729,1996,2030,2515,2522,2663,2671,2687 'rewrit':1043 'rf':1084 'risk':1772,1977 'rm':1083 'root':980,1386,2594,2755 'row':929,966,1153,1167,1191,1258,1264,1287,1323,1358,1746,1850,2458,2478,2491 'rule':111,167,204,383,513,681,1077,1717,1831,2201,2231,2243,2250,2258,2266,2421,2429,2941,2973,2989,3038 'rule-skil':110,166,680,2230,2242,2257,2428,2940 'rules-as-skil':2249,2420 'run':256,476,872,971,1092,1199,1383,1502,1577,1705,2510,2667,2799 'runtim':126,2883 'say':34,1777 'scaffold':697,699,728 'scan':222,624,925,1653,1706 'scenario':2051 'scope':588 'script':518,1994,2086,2347,2351,2725,2975 'scripts/setup.sh':477 'search':652 'secret':1652 'section':2288,3051 'secur':237,924,1071,1635 'security/structure/quality/publishing':1130 'see':1462,2179,2408,2597 'seem':184 'self':92,976,1421,1591,2670,2686 'self-contradictori':91 'self-review':975,1420,1590,2669,2685 'send':298 'separ':88,815 'sequenti':1594 'session':675 'setup':517 'setup.sh':127,1573,1953,2728,2875 'sever':366 'shadow':1988,3066 'share':535,2011 'ship':135 'shortcut':581 'show':229 'signal':668 'signatur':740 'sinc':578 'singl':144,1616,1902,1970,2277,2400 'single-lin':1901 'single-platform':2399 'single-skil':1969,2276 'situat':221 'size':1907,1938,2976 'sk':47,1657 'skeleton':2966 'skill':2,8,14,19,37,40,43,48,50,61,64,78,105,108,112,121,145,168,273,309,319,442,446,449,452,455,460,625,637,646,656,682,694,729,772,1125,1135,1137,1398,1404,1413,1419,1426,1479,1498,1539,1544,1555,1971,1974,1980,2073,2092,2232,2239,2244,2252,2259,2270,2278,2328,2388,2410,2423,2430,2452,2508,2511,2531,2535,2561,2630,2637,2665,2668,2703,2853,2857,2864,2887,2942,2944,2955,2990,3032 'skill-forg':1,2530 'skill-skill-forge' 'skill-specif':2534,2560 'skill.md':510,541,745,1159,1916,1992,2001,2013,2114,2130,2147,2196,2320,2372,2714,2912 'skillitem':796 'skills.sh':658 'skip':684,704,792,1190,2067,2118,2610,3006 'sourc':719,722,748,752,1510,2178,2632,2828 'source-motiful' 'specif':169,2385,2536,2562,2910 'split':81,1950,2979 'sr':1417 'sr_result.no':1429 'stale':1088,2369 'standalon':660,1397 'standard':67,532,735,1713,1754,1769,1776,1834,1881,1885,1889,1899,2044,2103,2306,2537,2563,2876 'state':1773 'stateless':2906 'status':2816 'stay':428 'step':216,399,401,403,473,496,595,604,816,840,854,899,900,921,935,951,956,957,961,969,1016,1020,1054,1056,1273,1346,1376,1466,1534,1600,2440,2455,2470,2716,2786,2794,3012 'stop':267,482,1647 'store':1686 'stranger':2059 'structur':12,238,551,852,914,1006,1874,1967,2284 'sub':898,1015,1566,1733,1737 'sub-ag':1565,1736 'sub-step':897,1014 'sub-task':1732 'substitut':2518,2674 'suggest':943,1787,1818,2500,2762 'summari':355 'support':1564 'symlink':23,2099,2596,2606,2641,2749,3072 'system':1304 'tabl':827,928,1132,1157,1263,1745,1843,1849 'tag':1701 'target':472,494,507,654,979,1379,1385,1394,1410,1423,1437,1449,1457,1461,2812 'target-level':1378 'target.has':1453 'task':1734 'taxonomi':1962 'templat':2740,2996 'terminolog':2038 'test':2023,2228,2905,2922 'three':74,83,2019,2254 'three-dimens':73 'three-lay':2018,2253 'threshold':2295,3058 'tier':2929 'time':276,1107 'todo':1355 'togeth':136 'token':1662 'tool':314,994,1414,1427,1572 'top':892,1011,1027 'top-level':891,1010,1026 'topic':1527 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-agents' 'topic-ai-tools' 'topic-claude-code' 'topic-codex' 'topic-context-engineering' 'topic-cursor' 'topic-developer-tools' 'topic-llm' 'topic-skills' 'track':430,1678 'transform':750 'treat':322 'trigger':432,651,1472,1476,2050,2802,2980 'true':2713 'two':2880 'type':884,1742,1808 'u':1521,2843 'uncheck':1371,2487 'understand':219,306 'undetect':2613 'uniform':839 'unit':1999 'univers':2527 'unlock':1794 'unnecessari':2374 'updat':1050,1267,1536,2583,2847 'upgrad':1799 'url':2836 'use':28,30,990,1412,1425,1735,2100,2213,2646,2896 'user':33,232,265,287,375,634,642,676,692,1315,1342,1493,1786,1803,1827,2224,2493,2503,2611,2900 'user-adjust':2223 'valid':4,63,258,304,549,592,608,826,923,926,931,955,1058,1123,1131,1156,1262,1272,1583,1602,1627,1648,1691,1744,1842,2028,2094,2247,2588,2715 'vendor':2098,2620,2640 'verifi':2692 'via':22 'violat':1833 'visibl':1500,2813 'vs':132,2279,2371,2945,3071 'wait':1205 'well':59 'well-engin':58 'whether':1393 'win':2542 'without':2060 'work':2729 'workflow':13,2072,3031 'workspac':659,665,687,709,717,1987,3065 'would':1793 'write':405,757,787,985,993,1165,1195,2969 'written':1251 'wrong':1784 'x':457,968,1362,2463,2484 'xox':1660 'yes':2246 'zero':481,2208,2486 'zero-config':2207","prices":[{"id":"5fe02062-8928-4f6b-8663-72ef089af841","listingId":"270bedfe-5f9c-45b6-a276-c09606092b6e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"motiful","category":"skill-forge","install_from":"skills.sh"},"createdAt":"2026-04-18T23:58:00.660Z"}],"sources":[{"listingId":"270bedfe-5f9c-45b6-a276-c09606092b6e","source":"github","sourceId":"motiful/skill-forge","sourceUrl":"https://github.com/motiful/skill-forge","isPrimary":false,"firstSeenAt":"2026-04-18T23:58:00.660Z","lastSeenAt":"2026-04-22T18:58:23.858Z"}],"details":{"listingId":"270bedfe-5f9c-45b6-a276-c09606092b6e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"motiful","slug":"skill-forge","github":{"repo":"motiful/skill-forge","stars":39,"topics":["agent-skills","agentic-ai","ai","ai-agents","ai-tools","claude-code","codex","context-engineering","cursor","developer-tools","llm","skills"],"license":"mit","html_url":"https://github.com/motiful/skill-forge","pushed_at":"2026-04-21T21:21:30Z","description":"Skill engineering methodology and publishing pipeline for AI agent skills. Validates structure, scans for security, audits entire projects, and publishes to GitHub. Skills are code — engineer them like it.","skill_md_sha":"a8d0095e319a849152e19d0c4532d1402a11b43f","skill_md_path":"SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/motiful/skill-forge"},"layout":"root","source":"github","category":"skill-forge","frontmatter":{"name":"skill-forge","license":"MIT","description":"Validate, fix, and publish skills as GitHub repos. Structures workflow skills for execution fidelity. Registers skills across platforms via symlinks and guides first-use onboarding. Use when the user says \"create a skill\", \"forge a skill\", \"review this skill repo\", \"audit this skill\", \"audit all my skills\", \"audit this project\", \"clean up my skills\", \"check my skill\", \"publish this skill\", \"push this to GitHub\", \"structure my workflow skill\", or points to a project directory with mixed skills and rules. Forge: discover → classify → validate → fix → local ready. Nothing found → onboard user, scaffold, then same pipeline. Publish to GitHub when requested (Step 4)."},"skills_sh_url":"https://skills.sh/motiful/skill-forge"},"updatedAt":"2026-04-22T18:58:23.858Z"}}