[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RHMSK3VCKHMRB2REAYPF5":3,"skill-same:01M71RHMSK3VCKHMRB2REAYPF5":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M71RHMSK3VCKHMRB2REAYPF5","autospec-story",null,"Use when the user wants a repo-level product story, implementation-state overview, or narrative synthesis from local specs plus GitHub issues and PRs for the current repository.","berlinguyinca\u002Fautospec","berlinguyinca","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F16364?v=4","01M71R7C0SWBG05FNHQE4XQ7Y3","Gert Wohlgemuth","01M71R7C1VY5K3Q715RNDDBVGQ",3,"MIT","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"autospec story","Story","autospec","user","Synthesis","github issues","implementation","repository","product","github","narrative","state","when","use","overview","prs","local","issues","repo","for","2026-11-10 13:02:02",false,"---\nname: autospec-story\ndescription: Use when the user wants a repo-level product story, implementation-state overview, or narrative synthesis from local specs plus GitHub issues and PRs for the current repository.\n---\n\n# autospec-story (harness-neutral)\n\nRead-only repo storyteller. Build a complete overview of the current GitHub\nrepository by reconciling local specs, docs, GitHub issues, GitHub PRs, and\nrecent git history into one cited Markdown narrative: what the application is,\nwhy it exists, what has been implemented, what remains open, and which parts\nare evidence versus inference.\n\nManage your own context — never exceed 60%. Delegate the final synthesis to a\nTier A subagent whenever your harness supports it.\n\n\u003C!-- autospec-block:startup-self-update SKILL_NAME=autospec-story -->\n\n## Self-update mode\n\nIf the feature-request argument matches the regex `^\\s*update\\s*$`\n(case-insensitive, whitespace-padded), this skill enters self-update mode and\ndoes not run the normal story workflow:\n\n1. **Detect harness** by checking which install path exists for this skill:\n   - Claude Code: `~\u002F.claude\u002Fskills\u002Fautospec-story\u002FSKILL.md`\n   - OpenCode:    `~\u002F.config\u002Fopencode\u002Fagent\u002Fautospec-story.md`\n   - Codex CLI:   `~\u002F.codex\u002Fprompts\u002Fautospec-story.md`\n2. **Re-install the full autospec suite from `main`** by piping the canonical installer:\n   ```bash\n   curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fberlinguyinca\u002Fautospec\u002Fmain\u002Fbootstrap.sh | bash -s -- --skill all --harness all --update\n   ```\n   Run this one-liner once; it refreshes all autospec skills across all harnesses.\n3. **Show the diff** between the prior installed file(s) and the freshly fetched\n   copy.\n4. **Stop.** Do not gather repo state or write a story report. Print the upgrade\n   summary and return to the user.\n\nIf no install path is detected, print `Self-update: no installed copy of\nautospec-story found; run install.sh first.` and exit.\n\n## Invocation\n\n```\n\u002Fautospec-story [--since \u003Cdate>] [--output \u003Cpath>] [--limit \u003CN>]\n```\n\n- `--since \u003Cdate>` — limit GitHub issue, PR, and git-history collection to\n  items created or updated since the date. Accepts GitHub search date syntax\n  such as `2026-05-01`.\n- `--output \u003Cpath>` — write the report to a local Markdown file in addition to\n  printing the summary. Default: print only.\n- `--limit \u003CN>` — cap GitHub issue and PR collection per state bucket. Default:\n  `500`.\n\nThis skill is read-only with respect to the target repo and GitHub: do not edit\nissues, labels, projects, branches, commits, or pull requests.\n\n## Harness detection (run once at skill start)\n\nDetect your harness by checking available tools before dispatching work:\n\n1. **Claude Code** — the `Agent` tool with a `subagent_type` parameter is available.\n   - `TIER_A` = `opus` + `ultrathink`  (the alias, which resolves to the current Claude Opus generation)\n   - `TIER_B` = `sonnet`               (the alias, which resolves to the current Claude Sonnet generation)\n\n2. **OpenCode** — a `task` tool with model\u002Ftier configuration is available (no `subagent_type`).\n   - `TIER_A` = top-tier task model + high reasoning\n   - `TIER_B` = smaller-tier task model + medium reasoning\n\n3. **Codex CLI** — neither `Agent` nor a configurable `task` tool is available; `apply_patch` is the primary edit tool.\n   - `TIER_A` = current top GPT model + `reasoning_effort=high`\n   - `TIER_B` = the spark \u002F cost-optimized variant of the configured model when one exists, else the configured model + `reasoning_effort=medium`\n\n**Fallback rule:** If `TIER_B` is not available in your harness (model unknown, quota\u002Fcapacity failure, authorization failure, or tool call returns an error for that model), silently retry the same dispatch with `TIER_A`. Preserve the parent context on retry; for Codex native subagents, fork\u002Finherit the current conversation context and use the latest top GPT model instead of moving the work into the main session. Never ask the user.\n\nHold `TIER_A` and `TIER_B` for the entire skill run.\n\n## Required capabilities & harness adapter\n\nThis workflow assumes a small set of capabilities. Map each one to your\nharness's actual tool. If a capability is missing, use the listed fallback.\n\n| Capability                  | Claude Code                          | OpenCode                              | Codex CLI                              | Fallback if missing                                |\n|-----------------------------|--------------------------------------|---------------------------------------|----------------------------------------|----------------------------------------------------|\n| Read-only codebase research | `Agent` (subagent_type=Explore)      | `task` agent in read-only mode        | shell `rg`, `git`, `gh`                | Do the search in-thread with `rg`\u002F`grep`           |\n| Foreground delegation       | `Agent` (subagent_type=general-purpose) | nested `task` agent, await output  | spawn nested CLI session               | Do the synthesis in-thread                         |\n| Ask the user a question     | `AskUserQuestion`                    | inline prompt                         | inline prompt                          | Ask in the response and wait for the next turn     |\n| Subagent model tier         | Tier A: `opus` + `ultrathink`; Tier B: `sonnet` + medium thinking | Tier A: top `task` model + high reasoning; Tier B: smaller-tier `task` + medium reasoning | Tier A: top GPT + `reasoning_effort=high`; Tier B: current spark\u002Fcost-optimized Codex + `reasoning_effort=medium` | Honor the per-phase tier mapping in AGENTS.md; retry the same subagent UP on unavailability |\n\u003C!-- autospec-block:harness-adapter-core -->\n\n**Persistent project notes**: read durable preferences from **`AGENTS.md`** in\nthe repo root. If multiple scoped AGENTS files exist, honor the deepest one for\nfiles under that scope. Per AGENTS.md, the synthesis subagent uses **Tier A\n(spec work)** because the output is a spec-adjacent reasoning artifact. The\norchestrator keeps the user's invoked model. Fall back UP the tier on\nunavailability.\n\n## Pre-flight\n\n1. Verify the current directory is inside a git worktree:\n   `git rev-parse --show-toplevel`.\n2. Verify the repo is connected to GitHub:\n   `gh repo view --json nameWithOwner,url -q '.nameWithOwner + \" \" + .url'`.\n3. Verify `gh auth status` is authenticated. If unavailable, continue with local\n   evidence only and mark GitHub state as missing evidence.\n4. Parse flags. Default `LIMIT=500`; if `--since` is present, add\n   `--search \"created:>=\u003Cdate> OR updated:>=\u003Cdate>\"` only where the GitHub CLI\n   command supports it.\n\n## Evidence collection\n\nCollect evidence into a temporary working directory under `${TMPDIR:-\u002Ftmp}`.\nUse structured JSON where possible and keep raw command output so the final\nreport can cite sources.\n\n### Local repository evidence\n\nRun from the repo root:\n\n```bash\ngit rev-parse --show-toplevel\ngit branch --show-current\ngit status --short --branch\ngit log --date=short --pretty=format:'%h%x09%ad%x09%s' --max-count 200\nrg --files docs .github examples skills scripts tests | sort\n```\n\nRead only the files that help establish product story or implementation state:\n\n- `README.md`, `AGENTS.md`, `SKILLS.md`, `CONTRIBUTING.md`.\n- `docs\u002Fspecs\u002F*.md`, `docs\u002Fsuperpowers\u002Fspecs\u002F*.md`, `.omx\u002Fplans\u002F*.md`.\n- `docs\u002Farchitecture.md`, `docs\u002Fuser-manual.md`, `docs\u002Frunbooks\u002F*.md`.\n- Repo-specific package manifests, service entry points, and top-level\n  architecture docs discovered by `rg --files`.\n\nDo not bulk-paste entire large files into the final answer. Extract titles,\nsection headings, decisions, acceptance criteria, and completion markers.\n\n### GitHub issue evidence\n\nCollect both open and closed issues; closed issues are the primary source for\ncompleted work.\n\n```bash\ngh issue list --state open --limit \"$LIMIT\" --json number,title,state,labels,assignees,createdAt,updatedAt,url,body\ngh issue list --state closed --limit \"$LIMIT\" --json number,title,state,labels,assignees,createdAt,updatedAt,closedAt,url,body\n```\n\nIf `--since` is present, prefer GitHub search filters; if a command cannot\nexpress the filter, collect first and filter by timestamp during synthesis.\n\n### GitHub PR evidence\n\nCollect open, merged, and closed PRs:\n\n```bash\ngh pr list --state open --limit \"$LIMIT\" --json number,title,state,labels,createdAt,updatedAt,url,body,headRefName,baseRefName\ngh pr list --state merged --limit \"$LIMIT\" --json number,title,state,labels,createdAt,updatedAt,mergedAt,url,body,headRefName,baseRefName\ngh pr list --state closed --limit \"$LIMIT\" --json number,title,state,labels,createdAt,updatedAt,closedAt,url,body,headRefName,baseRefName\n```\n\nMap PRs back to issues by parsing `Closes #N`, `Fixes #N`, `Refs #N`, branch\nnames, labels, and issue URLs in PR bodies. Treat this mapping as inference\nunless the PR body has an explicit close\u002Freference line.\n\n## Story synthesis\n\n> **Model tier:** Tier A (spec work) — top model with extended\u002Fmaximum thinking\n> per AGENTS.md. Claude Code: `opus` + `ultrathink`; Codex: current top GPT +\n> `reasoning_effort=high`; OpenCode: top task tier. Fall back UP on\n> unavailability.\n\nSynthesize a cited report. Preserve the distinction between evidence and\ninference:\n\n- Evidence: direct local file paths, issue numbers, PR numbers, labels, commit\n  subjects, spec section titles, and explicit close\u002Freference lines.\n- Inference: likely component state, intent that is implied by multiple related\n  issues, and PR-to-issue mappings without explicit closing syntax.\n- Unknown: anything not supported by current local files, GitHub artifacts, or\n  git history.\n\nPrioritize a complete overview over chronological exhaustiveness. Cluster work\nby product capability or application subsystem, not by issue number alone.\n\n## Report format\n\nWhen `--output` is provided, write this exact Markdown shape to that path. When\nprinting in chat, include the executive summary plus the most important state\ntables and cite the report path if one was written.\n\n```markdown\n# Autospec Story: \u003Cowner\u002Frepo>\n\nGenerated: \u003CISO8601 timestamp>\nRepo root: `\u003Cabsolute path>`\nGitHub: \u003Crepo url or \"unavailable\">\nEvidence window: \u003Call available evidence or --since date>\n\n## Executive Summary\n\n\u003C5-8 bullets describing what the application is, current implementation state,\nand the highest-signal open gaps. Each bullet cites at least one source.>\n\n## Application Story\n\n\u003CNarrative of the problem, product direction, and major design decisions.>\n\n## Evidence Map\n\n| Evidence type | Count | Primary sources |\n| --- | ---: | --- |\n| Specs | N | `docs\u002Fspecs\u002F...` |\n| Open issues | N | #1, #2 |\n| Closed issues | N | #3, #4 |\n| Open PRs | N | #5 |\n| Merged PRs | N | #6 |\n| Recent commits | N | `abc1234` |\n\n## Implementation State\n\n| Area | State | Evidence | Notes |\n| --- | --- | --- | --- |\n| \u003Ccapability> | Implemented \u002F In progress \u002F Planned \u002F Unknown | \u003Cpaths, #issues, #PRs> | \u003Cshort note> |\n\n## Completed Work\n\n\u003CGrouped closed issues, merged PRs, and specs that appear implemented.>\n\n## Open Work\n\n\u003COpen issues and unmerged PRs grouped by capability, with blockers called out.>\n\n## Specs and Decisions\n\n\u003CSpecs written, key decisions, superseded plans, and active design contracts.>\n\n## Risks, Gaps, and Unknowns\n\n\u003CExplicitly separate missing evidence from known defects.>\n\n## Next Recommended Questions\n\n\u003CQuestions the team should ask next, grounded in current state.>\n\n## Source References\n\n\u003CLocal paths, issue URLs, PR URLs, and commit ids used as evidence.>\n```\n\n## Quality bar\n\n- Every major claim cites at least one source.\n- Closed issue heartbeats, stale labels, and old specs are treated as historical\n  evidence, not proof of current implementation.\n- Do not claim a feature is implemented solely because an issue exists. Prefer\n  `Planned` unless there is a merged PR, closed issue with implementation\n  detail, or local code\u002Fdocs evidence.\n- Call out dirty worktree state in the report header so readers know whether\n  the local repo includes uncommitted changes.\n- If GitHub is unavailable, say so clearly and produce a local-only story.\n- If the report is too long for chat, write it to `docs\u002Fautospec-story.md` only\n  when the user passed `--output docs\u002Fautospec-story.md`; otherwise print a\n  concise story and recommend an output path.\n","# autospec-story (harness-neutral)\n\nRead-only repo storyteller. Build a complete overview of the current GitHub\nrepository by reconciling local specs, docs, GitHub issues, GitHub PRs, and\nrecent git history into one cited Markdown narrative: what the application is,\nwhy it exists, what has been implemented, what remains open, and which parts\nare evidence versus inference.\n\nManage your own context — never exceed 60%. Delegate the final synthesis to a\nTier A subagent whenever your harness supports it.\n\n\u003C!-- autospec-block:startup-self-update SKILL_NAME=autospec-story -->\n\n## Self-update mode\n\nIf the feature-request argument matches the regex `^\\s*update\\s*$`\n(case-insensitive, whitespace-padded), this skill enters self-update mode and\ndoes not run the normal story workflow:\n\n1. **Detect harness** by checking which install path exists for this skill:\n   - Claude Code: `~\u002F.claude\u002Fskills\u002Fautospec-story\u002FSKILL.md`\n   - OpenCode:    `~\u002F.config\u002Fopencode\u002Fagent\u002Fautospec-story.md`\n   - Codex CLI:   `~\u002F.codex\u002Fprompts\u002Fautospec-story.md`\n2. **Re-install the full autospec suite from `main`** by piping the canonical installer:\n   ```bash\n   curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fberlinguyinca\u002Fautospec\u002Fmain\u002Fbootstrap.sh | bash -s -- --skill all --harness all --update\n   ```\n   Run this one-liner once; it refreshes all autospec skills across all harnesses.\n3. **Show the diff** between the prior installed file(s) and the freshly fetched\n   copy.\n4. **Stop.** Do not gather repo state or write a story report. Print the upgrade\n   summary and return to the user.\n\nIf no install path is detected, print `Self-update: no installed copy of\nautospec-story found; run install.sh first.` and exit.\n\n## Invocation\n\n```\n\u002Fautospec-story [--since \u003Cdate>] [--output \u003Cpath>] [--limit \u003CN>]\n```\n\n- `--since \u003Cdate>` — limit GitHub issue, PR, and git-history collection to\n  items created or updated since the date. Accepts GitHub search date syntax\n  such as `2026-05-01`.\n- `--output \u003Cpath>` — write the report to a local Markdown file in addition to\n  printing the summary. Default: print only.\n- `--limit \u003CN>` — cap GitHub issue and PR collection per state bucket. Default:\n  `500`.\n\nThis skill is read-only with respect to the target repo and GitHub: do not edit\nissues, labels, projects, branches, commits, or pull requests.\n\n## Harness detection (run once at skill start)\n\nDetect your harness by checking available tools before dispatching work:\n\n1. **Claude Code** — the `Agent` tool with a `subagent_type` parameter is available.\n   - `TIER_A` = `opus` + `ultrathink`  (the alias, which resolves to the current Claude Opus generation)\n   - `TIER_B` = `sonnet`               (the alias, which resolves to the current Claude Sonnet generation)\n\n2. **OpenCode** — a `task` tool with model\u002Ftier configuration is available (no `subagent_type`).\n   - `TIER_A` = top-tier task model + high reasoning\n   - `TIER_B` = smaller-tier task model + medium reasoning\n\n3. **Codex CLI** — neither `Agent` nor a configurable `task` tool is available; `apply_patch` is the primary edit tool.\n   - `TIER_A` = current top GPT model + `reasoning_effort=high`\n   - `TIER_B` = the spark \u002F cost-optimized variant of the configured model when one exists, else the configured model + `reasoning_effort=medium`\n\n**Fallback rule:** If `TIER_B` is not available in your harness (model unknown, quota\u002Fcapacity failure, authorization failure, or tool call returns an error for that model), silently retry the same dispatch with `TIER_A`. Preserve the parent context on retry; for Codex native subagents, fork\u002Finherit the current conversation context and use the latest top GPT model instead of moving the work into the main session. Never ask the user.\n\nHold `TIER_A` and `TIER_B` for the entire skill run.\n\n## Required capabilities & harness adapter\n\nThis workflow assumes a small set of capabilities. Map each one to your\nharness's actual tool. If a capability is missing, use the listed fallback.\n\n| Capability                  | Claude Code                          | OpenCode                              | Codex CLI                              | Fallback if missing                                |\n|-----------------------------|--------------------------------------|---------------------------------------|----------------------------------------|----------------------------------------------------|\n| Read-only codebase research | `Agent` (subagent_type=Explore)      | `task` agent in read-only mode        | shell `rg`, `git`, `gh`                | Do the search in-thread with `rg`\u002F`grep`           |\n| Foreground delegation       | `Agent` (subagent_type=general-purpose) | nested `task` agent, await output  | spawn nested CLI session               | Do the synthesis in-thread                         |\n| Ask the user a question     | `AskUserQuestion`                    | inline prompt                         | inline prompt                          | Ask in the response and wait for the next turn     |\n| Subagent model tier         | Tier A: `opus` + `ultrathink`; Tier B: `sonnet` + medium thinking | Tier A: top `task` model + high reasoning; Tier B: smaller-tier `task` + medium reasoning | Tier A: top GPT + `reasoning_effort=high`; Tier B: current spark\u002Fcost-optimized Codex + `reasoning_effort=medium` | Honor the per-phase tier mapping in AGENTS.md; retry the same subagent UP on unavailability |\n\u003C!-- autospec-block:harness-adapter-core -->\n\n**Persistent project notes**: read durable preferences from **`AGENTS.md`** in\nthe repo root. If multiple scoped AGENTS files exist, honor the deepest one for\nfiles under that scope. Per AGENTS.md, the synthesis subagent uses **Tier A\n(spec work)** because the output is a spec-adjacent reasoning artifact. The\norchestrator keeps the user's invoked model. Fall back UP the tier on\nunavailability.\n\n## Pre-flight\n\n1. Verify the current directory is inside a git worktree:\n   `git rev-parse --show-toplevel`.\n2. Verify the repo is connected to GitHub:\n   `gh repo view --json nameWithOwner,url -q '.nameWithOwner + \" \" + .url'`.\n3. Verify `gh auth status` is authenticated. If unavailable, continue with local\n   evidence only and mark GitHub state as missing evidence.\n4. Parse flags. Default `LIMIT=500`; if `--since` is present, add\n   `--search \"created:>=\u003Cdate> OR updated:>=\u003Cdate>\"` only where the GitHub CLI\n   command supports it.\n\n## Evidence collection\n\nCollect evidence into a temporary working directory under `${TMPDIR:-\u002Ftmp}`.\nUse structured JSON where possible and keep raw command output so the final\nreport can cite sources.\n\n### Local repository evidence\n\nRun from the repo root:\n\n```bash\ngit rev-parse --show-toplevel\ngit branch --show-current\ngit status --short --branch\ngit log --date=short --pretty=format:'%h%x09%ad%x09%s' --max-count 200\nrg --files docs .github examples skills scripts tests | sort\n```\n\nRead only the files that help establish product story or implementation state:\n\n- `README.md`, `AGENTS.md`, `SKILLS.md`, `CONTRIBUTING.md`.\n- `docs\u002Fspecs\u002F*.md`, `docs\u002Fsuperpowers\u002Fspecs\u002F*.md`, `.omx\u002Fplans\u002F*.md`.\n- `docs\u002Farchitecture.md`, `docs\u002Fuser-manual.md`, `docs\u002Frunbooks\u002F*.md`.\n- Repo-specific package manifests, service entry points, and top-level\n  architecture docs discovered by `rg --files`.\n\nDo not bulk-paste entire large files into the final answer. Extract titles,\nsection headings, decisions, acceptance criteria, and completion markers.\n\n### GitHub issue evidence\n\nCollect both open and closed issues; closed issues are the primary source for\ncompleted work.\n\n```bash\ngh issue list --state open --limit \"$LIMIT\" --json number,title,state,labels,assignees,createdAt,updatedAt,url,body\ngh issue list --state closed --limit \"$LIMIT\" --json number,title,state,labels,assignees,createdAt,updatedAt,closedAt,url,body\n```\n\nIf `--since` is present, prefer GitHub search filters; if a command cannot\nexpress the filter, collect first and filter by timestamp during synthesis.\n\n### GitHub PR evidence\n\nCollect open, merged, and closed PRs:\n\n```bash\ngh pr list --state open --limit \"$LIMIT\" --json number,title,state,labels,createdAt,updatedAt,url,body,headRefName,baseRefName\ngh pr list --state merged --limit \"$LIMIT\" --json number,title,state,labels,createdAt,updatedAt,mergedAt,url,body,headRefName,baseRefName\ngh pr list --state closed --limit \"$LIMIT\" --json number,title,state,labels,createdAt,updatedAt,closedAt,url,body,headRefName,baseRefName\n```\n\nMap PRs back to issues by parsing `Closes #N`, `Fixes #N`, `Refs #N`, branch\nnames, labels, and issue URLs in PR bodies. Treat this mapping as inference\nunless the PR body has an explicit close\u002Freference line.\n\n## Story synthesis\n\n> **Model tier:** Tier A (spec work) — top model with extended\u002Fmaximum thinking\n> per AGENTS.md. Claude Code: `opus` + `ultrathink`; Codex: current top GPT +\n> `reasoning_effort=high`; OpenCode: top task tier. Fall back UP on\n> unavailability.\n\nSynthesize a cited report. Preserve the distinction between evidence and\ninference:\n\n- Evidence: direct local file paths, issue numbers, PR numbers, labels, commit\n  subjects, spec section titles, and explicit close\u002Freference lines.\n- Inference: likely component state, intent that is implied by multiple related\n  issues, and PR-to-issue mappings without explicit closing syntax.\n- Unknown: anything not supported by current local files, GitHub artifacts, or\n  git history.\n\nPrioritize a complete overview over chronological exhaustiveness. Cluster work\nby product capability or application subsystem, not by issue number alone.\n\n## Report format\n\nWhen `--output` is provided, write this exact Markdown shape to that path. When\nprinting in chat, include the executive summary plus the most important state\ntables and cite the report path if one was written.\n\n```markdown\n# Autospec Story: \u003Cowner\u002Frepo>\n\nGenerated: \u003CISO8601 timestamp>\nRepo root: `\u003Cabsolute path>`\nGitHub: \u003Crepo url or \"unavailable\">\nEvidence window: \u003Call available evidence or --since date>\n\n## Executive Summary\n\n\u003C5-8 bullets describing what the application is, current implementation state,\nand the highest-signal open gaps. Each bullet cites at least one source.>\n\n## Application Story\n\n\u003CNarrative of the problem, product direction, and major design decisions.>\n\n## Evidence Map\n\n| Evidence type | Count | Primary sources |\n| --- | ---: | --- |\n| Specs | N | `docs\u002Fspecs\u002F...` |\n| Open issues | N | #1, #2 |\n| Closed issues | N | #3, #4 |\n| Open PRs | N | #5 |\n| Merged PRs | N | #6 |\n| Recent commits | N | `abc1234` |\n\n## Implementation State\n\n| Area | State | Evidence | Notes |\n| --- | --- | --- | --- |\n| \u003Ccapability> | Implemented \u002F In progress \u002F Planned \u002F Unknown | \u003Cpaths, #issues, #PRs> | \u003Cshort note> |\n\n## Completed Work\n\n\u003CGrouped closed issues, merged PRs, and specs that appear implemented.>\n\n## Open Work\n\n\u003COpen issues and unmerged PRs grouped by capability, with blockers called out.>\n\n## Specs and Decisions\n\n\u003CSpecs written, key decisions, superseded plans, and active design contracts.>\n\n## Risks, Gaps, and Unknowns\n\n\u003CExplicitly separate missing evidence from known defects.>\n\n## Next Recommended Questions\n\n\u003CQuestions the team should ask next, grounded in current state.>\n\n## Source References\n\n\u003CLocal paths, issue URLs, PR URLs, and commit ids used as evidence.>\n```\n\n## Quality bar\n\n- Every major claim cites at least one source.\n- Closed issue heartbeats, stale labels, and old specs are treated as historical\n  evidence, not proof of current implementation.\n- Do not claim a feature is implemented solely because an issue exists. Prefer\n  `Planned` unless there is a merged PR, closed issue with implementation\n  detail, or local code\u002Fdocs evidence.\n- Call out dirty worktree state in the report header so readers know whether\n  the local repo includes uncommitted changes.\n- If GitHub is unavailable, say so clearly and produce a local-only story.\n- If the report is too long for chat, write it to `docs\u002Fautospec-story.md` only\n  when the user passed `--output docs\u002Fautospec-story.md`; otherwise print a\n  concise story and recommend an output path.\n",{"name":5,"description":7},"main","9e7f04357ff46ab731d4f56a4ac5ca5449c13bb0","skills\u002Fautospec-story",1,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec","https:\u002F\u002Fgithub.com\u002Fberlinguyinca","Love to lead, code, cook and contribute to open source and believe that you can learn anything you set your mind too.\r\n","2026-11-11 07:09:35",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add berlinguyinca\u002Fautospec --skill autospec-story",{"tool":58,"command":59},"bunx","bunx skills add berlinguyinca\u002Fautospec --skill autospec-story",{"tool":61,"command":62},"pnpm","pnpm dlx skills add berlinguyinca\u002Fautospec --skill autospec-story","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002FSKILL.md",true,[66,72,78,82,86],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"codex\u002Fprompt.md","REFERENCE","参考文档",12068,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002Fcodex\u002Fprompt.md",{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"install.sh","SCRIPT","脚本",10794,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002Finstall.sh",{"path":79,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":80,"sourceHtmlUrl":81},"opencode\u002Fagent.md",12302,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002Fopencode\u002Fagent.md",{"path":83,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":84,"sourceHtmlUrl":85},"README.md",1480,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002FREADME.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"uninstall.sh",3939,"https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-story\u002Funinstall.sh",[91,104,113,122,145,169],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":101,"publishedAt":39},"01M71RJHYMKPTC9AAPXWQ6F4RT","trio-pass-skill","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Flockstep-trio-pass\u002FSKILL.md",[96],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[102,103],"trio","trio pass skill",{"skillNo":105,"name":106,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":110,"publishedAt":39},"01M71RJFBQ1KAF9XM3T3Y4VMSK","duo-pass-skill","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Flockstep-duo-pass\u002FSKILL.md",[109],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[111,112],"duo pass skill","duo",{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":39},"01M71RJDT1TB3P9TRWR6A534FB","duo-divergence-skill","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Flockstep-duo-divergence\u002FSKILL.md",[118],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[120,112,121],"duo divergence skill","divergence",{"skillNo":123,"name":21,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":130,"publishedAt":39},"01M71RJAC4NNEQSYBDSY3NZS73","Use when the user wants to ship a feature end-to-end across multiple commits — bootstraps repo if missing, brainstorms a design spec, decomposes into linked GitHub issues, or splits an existing spec into issues, then runs an autonomous implementation loop with auto-merge.","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec\u002FSKILL.md",[127],{"categoryNo":128,"categoryName":129,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000015","视觉设计",[21,131,132,36,133,134,135,136,31,137,138,139,140,141,24,142,143,37,144,32],"ship a feature","end","design","autonomous","auto","loop","across","design spec","merge","ship","implementation loop","feature","commits","missing",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":39},"01M71RJ4F9HT8PT26CKNM9XE1M","autospec-upgrade","Use when the user wants to upgrade an Angular, Next.js, or React project to the latest official versions safely — by locking observable behavior before touching versions, upgrading one major at a time with official codemods, and gating completion on mutation score rather than coverage theater.","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-upgrade\u002FSKILL.md",[],[152,21,153,154,155,156,157,158,159,31,160,161,162,163,32,164,165,166,167,168],"autospec upgrade","upgrade","mutation","coverage","official","project","time","gating","angular","react","next","at","Next.js","one","with","behavior","latest",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":180,"publishedAt":39},"01M71RJ28FJ4PM6DXHB7T5CF8H","autospec-ui-audit","Use when a React Router application needs a deterministic whole-site route inventory before UI, UX, navigation, or evidence auditing begins.","https:\u002F\u002Fgithub.com\u002Fberlinguyinca\u002Fautospec\u002Fblob\u002Fmain\u002Fskills\u002Fautospec-ui-audit\u002FSKILL.md",[175],{"categoryNo":176,"categoryName":177,"taxonomyType":178,"taxonomyTypeDesc":179},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[181,21,182,183,184,32,185,186,187,188,189,190,191,192,193,161,194,31,195],"ui audit","audit","autospec ui audit","ui","inventory","evidence","deterministic","route","ux","site","react router","navigation","application","needs","router"]