[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H48W19F46A7B7TSSQAMYRW":3,"skill-same:01M6H48W19F46A7B7TSSQAMYRW":72},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6H48W19F46A7B7TSSQAMYRW","dx-hub-status",null,"Show hub dispatch status — which repos are running, done, blocked or failed. Use for 'hub status', 'what's running'.","easingthemes\u002Fdx-aem-flow","easingthemes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2750284?v=4","01M6H3XYGJY8QCX9ES36P2WF4H","Dragan Filipović","01M6H3XYMN1XVSGKN7N79SW3RH",7,"MIT","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-hub\u002Fskills\u002Fdx-hub-status\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"hub","dx hub status","dx","hub status","status","read","write","grep","use","dispatch","repos","Bash","clean","show","done","id","ticket","which","for","2026-11-10 10:12:30",false,"---\nname: dx-hub-status\ndescription: \"Show hub dispatch status — which repos are running, done, blocked or failed. Use for 'hub status', 'what's running'.\"\nargument-hint: \"[ticket-id (optional) | --clean]\"\nallowed-tools: [\"Read\", \"Glob\", \"Grep\", \"Write\", \"Bash\"]\n---\n\nYou display the status of hub dispatches across all configured repos.\n\n**Before anything else**, read `.ai\u002Fconfig.yaml`. If `hub.enabled` is not `true`, STOP with:\n\n```\nHub mode is not enabled. Run `\u002Fdx-hub-init` first.\n```\n\n## 1. Parse Arguments\n\n- No argument → show all active dispatches (summary table)\n- `\u003Cticket-id>` → detailed view for that one ticket\n- `--clean` → remove state entries older than `hub.state-ttl`, report count\n\nRead from config:\n- `hub.state-ttl` — retention period for clean mode (default: `7d`)\n- `repos[]` — list of repos with paths (for reading spec dirs in detailed view)\n\n## 2. Load Status Files\n\nGlob `state\u002F*\u002Fstatus.json` to find all dispatch state files.\n\nIf no files found, print: `No active dispatches found. Run \u002Fdx-hub-dispatch to start one.` and STOP.\n\n## 3. Display\n\n### All dispatches (no argument)\n\nPrint a summary table:\n\n```\nHub Dispatch Status\n───────────────────────────────────────────────────\n┌──────────┬─────────────────────────┬──────────────┬──────────┐\n│ Ticket   │ Title                   │ Repo         │ Status   │\n├──────────┼─────────────────────────┼──────────────┼──────────┤\n│ 2471234  │ Add user profile page   │ repo-fe      │ done     │\n│          │                         │ repo-be      │ running  │\n│ 2471189  │ Fix auth timeout        │ repo-be      │ blocked  │\n└──────────┴─────────────────────────┴──────────────┴──────────┘\n\nLegend: done ✓  running ⟳  blocked ⚠  failed ✗\n```\n\nFor multi-repo dispatches, show ticket and title only on the first row.\n\n### Single ticket (`\u003Cticket-id>` argument)\n\nFind `state\u002F\u003Cticket-id>\u002Fstatus.json`. If not found, print: `No dispatch found for ticket \u003Cticket-id>.` and STOP.\n\nRead the status file and print:\n\n```markdown\n## Dispatch: \u003Cticket-id> — \u003Ctitle>\n\n**Type:** \u003Ctype>\n**Skill:** \u003Cskill>\n**Started:** \u003Cstarted timestamp>\n\n### Repo Status\n\n| Repo | Status |\n|------|--------|\n| \u003Crepo-a> | done |\n| \u003Crepo-b> | running |\n```\n\n**If any repo is `blocked`**, add:\n```\n⚠ \u003Crepo-name> is blocked — switch to its terminal to investigate.\n```\n\n**If any repo is `done`**, optionally check for spec files in that repo:\n```bash\nls \u003Crepo-path>\u002F.ai\u002Fspecs\u002F\u003Cticket-id>-*\u002F\n```\nReport which pipeline artifacts exist (raw-story.md, explain.md, implement.md, pr.md) as a quick progress indicator.\n\n### Cross-repo context\n\nPrint:\n```\nContext file: state\u002F\u003Cticket-id>\u002Fcontext.md\n```\n\n### Clean mode (`--clean`)\n\n1. Parse `hub.state-ttl` — support `7d`, `30d`, `24h` formats. Convert to seconds.\n2. Check each `state\u002F\u003Cdir>\u002Fstatus.json`:\n   - Read `started` timestamp\n   - If age exceeds TTL AND no repo is `running`, delete the directory with one `rm -rf state\u002F\u003Cticket-id>` per directory, the ticket id written out literally — never `state` or `state\u002F` itself, no shell variable, loop or `$(...)` as the target (Claude Code v2.1.281+ stops on those for a permission prompt even in bypass mode, which stalls a pipeline run)\n   - Never clean dispatches where any repo is still `running`\n3. Print summary:\n\n```\nHub State Cleaned\n─────────────────\nRemoved: \u003CN> dispatch dir(s) older than \u003Chub.state-ttl>\nRetained: \u003CM> dispatch dir(s)\n```\n\n## Examples\n\n### Check overall hub progress\n```\n\u002Fdx-hub-status\n```\nShows summary table of all dispatches with per-repo status.\n\n### Inspect a specific ticket\n```\n\u002Fdx-hub-status 2471234\n```\nShows detailed view with repo statuses. For completed repos, shows which spec files exist.\n\n### Clean up old state\n```\n\u002Fdx-hub-status --clean\n```\nRemoves dispatch state directories older than `hub.state-ttl` (default 7 days).\n\n## Troubleshooting\n\n### \"No active dispatches found\"\n**Cause:** No `status.json` files in `state\u002F`.\n**Fix:** Run `\u002Fdx-hub-dispatch \u003Cticket-id>` to start a dispatch.\n\n### Status shows \"running\" but terminal is idle\n**Cause:** The repo's Claude session finished but did not update `status.json` (prompt instruction was not followed).\n**Fix:** Manually edit `state\u002F\u003Cticket-id>\u002Fstatus.json` to set the correct status, or check the repo's spec directory for completion indicators.\n\n## Rules\n\n- **Read config first** — always check `hub.enabled` before doing anything else\n- **Never hardcode paths** — state dir is always `state\u002F` relative to hub CWD\n- **Respect running dispatches** — never clean entries where any repo is `running`\n- **Generic examples only** — no client org names, project names, or real repo names\n","You display the status of hub dispatches across all configured repos.\n\n**Before anything else**, read `.ai\u002Fconfig.yaml`. If `hub.enabled` is not `true`, STOP with:\n\n```\nHub mode is not enabled. Run `\u002Fdx-hub-init` first.\n```\n\n## 1. Parse Arguments\n\n- No argument → show all active dispatches (summary table)\n- `\u003Cticket-id>` → detailed view for that one ticket\n- `--clean` → remove state entries older than `hub.state-ttl`, report count\n\nRead from config:\n- `hub.state-ttl` — retention period for clean mode (default: `7d`)\n- `repos[]` — list of repos with paths (for reading spec dirs in detailed view)\n\n## 2. Load Status Files\n\nGlob `state\u002F*\u002Fstatus.json` to find all dispatch state files.\n\nIf no files found, print: `No active dispatches found. Run \u002Fdx-hub-dispatch to start one.` and STOP.\n\n## 3. Display\n\n### All dispatches (no argument)\n\nPrint a summary table:\n\n```\nHub Dispatch Status\n───────────────────────────────────────────────────\n┌──────────┬─────────────────────────┬──────────────┬──────────┐\n│ Ticket   │ Title                   │ Repo         │ Status   │\n├──────────┼─────────────────────────┼──────────────┼──────────┤\n│ 2471234  │ Add user profile page   │ repo-fe      │ done     │\n│          │                         │ repo-be      │ running  │\n│ 2471189  │ Fix auth timeout        │ repo-be      │ blocked  │\n└──────────┴─────────────────────────┴──────────────┴──────────┘\n\nLegend: done ✓  running ⟳  blocked ⚠  failed ✗\n```\n\nFor multi-repo dispatches, show ticket and title only on the first row.\n\n### Single ticket (`\u003Cticket-id>` argument)\n\nFind `state\u002F\u003Cticket-id>\u002Fstatus.json`. If not found, print: `No dispatch found for ticket \u003Cticket-id>.` and STOP.\n\nRead the status file and print:\n\n```markdown\n## Dispatch: \u003Cticket-id> — \u003Ctitle>\n\n**Type:** \u003Ctype>\n**Skill:** \u003Cskill>\n**Started:** \u003Cstarted timestamp>\n\n### Repo Status\n\n| Repo | Status |\n|------|--------|\n| \u003Crepo-a> | done |\n| \u003Crepo-b> | running |\n```\n\n**If any repo is `blocked`**, add:\n```\n⚠ \u003Crepo-name> is blocked — switch to its terminal to investigate.\n```\n\n**If any repo is `done`**, optionally check for spec files in that repo:\n```bash\nls \u003Crepo-path>\u002F.ai\u002Fspecs\u002F\u003Cticket-id>-*\u002F\n```\nReport which pipeline artifacts exist (raw-story.md, explain.md, implement.md, pr.md) as a quick progress indicator.\n\n### Cross-repo context\n\nPrint:\n```\nContext file: state\u002F\u003Cticket-id>\u002Fcontext.md\n```\n\n### Clean mode (`--clean`)\n\n1. Parse `hub.state-ttl` — support `7d`, `30d`, `24h` formats. Convert to seconds.\n2. Check each `state\u002F\u003Cdir>\u002Fstatus.json`:\n   - Read `started` timestamp\n   - If age exceeds TTL AND no repo is `running`, delete the directory with one `rm -rf state\u002F\u003Cticket-id>` per directory, the ticket id written out literally — never `state` or `state\u002F` itself, no shell variable, loop or `$(...)` as the target (Claude Code v2.1.281+ stops on those for a permission prompt even in bypass mode, which stalls a pipeline run)\n   - Never clean dispatches where any repo is still `running`\n3. Print summary:\n\n```\nHub State Cleaned\n─────────────────\nRemoved: \u003CN> dispatch dir(s) older than \u003Chub.state-ttl>\nRetained: \u003CM> dispatch dir(s)\n```\n\n## Examples\n\n### Check overall hub progress\n```\n\u002Fdx-hub-status\n```\nShows summary table of all dispatches with per-repo status.\n\n### Inspect a specific ticket\n```\n\u002Fdx-hub-status 2471234\n```\nShows detailed view with repo statuses. For completed repos, shows which spec files exist.\n\n### Clean up old state\n```\n\u002Fdx-hub-status --clean\n```\nRemoves dispatch state directories older than `hub.state-ttl` (default 7 days).\n\n## Troubleshooting\n\n### \"No active dispatches found\"\n**Cause:** No `status.json` files in `state\u002F`.\n**Fix:** Run `\u002Fdx-hub-dispatch \u003Cticket-id>` to start a dispatch.\n\n### Status shows \"running\" but terminal is idle\n**Cause:** The repo's Claude session finished but did not update `status.json` (prompt instruction was not followed).\n**Fix:** Manually edit `state\u002F\u003Cticket-id>\u002Fstatus.json` to set the correct status, or check the repo's spec directory for completion indicators.\n\n## Rules\n\n- **Read config first** — always check `hub.enabled` before doing anything else\n- **Never hardcode paths** — state dir is always `state\u002F` relative to hub CWD\n- **Respect running dispatches** — never clean entries where any repo is `running`\n- **Generic examples only** — no client org names, project names, or real repo names\n",{"name":5,"description":7,"allowed-tools":43,"argument-hint":48},[44,45,46,47,30],"Read","Glob","Grep","Write","[ticket-id (optional) | --clean]","main","a99cabc3f459fbeaa42b13a1604db1bccb6a364b","plugins\u002Fdx-hub\u002Fskills\u002Fdx-hub-status",3,"https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow","https:\u002F\u002Fgithub.com\u002Feasingthemes","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdraganfilipovic\u002F","Agentic SDLC platform in production. I build agent-ready codebases. AEM MCP Server author.","2026-11-11 09:59:48",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add easingthemes\u002Fdx-aem-flow --skill dx-hub-status",{"tool":64,"command":65},"bunx","bunx skills add easingthemes\u002Fdx-aem-flow --skill dx-hub-status",{"tool":67,"command":68},"pnpm","pnpm dlx skills add easingthemes\u002Fdx-aem-flow --skill dx-hub-status","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-hub\u002Fskills\u002Fdx-hub-status\u002FSKILL.md",true,[],[73,95,119,135,150,173],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":38},"01M6H48R6ZH7YMVPMVWMMWT3RA","dx-hub-init","Initialize a hub directory for multi-repo orchestration. Discovers sibling repos, merges configs, validates CLI compatibility. Use when setting up hub mode for the first time. Trigger on \"init hub\", \"set up hub\", \"multi-repo setup\".","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-hub\u002Fskills\u002Fdx-hub-init\u002FSKILL.md",[],[80,81,21,82,19,83,84,85,86,87,88,89,90,91,30,92,93,24,25,94],"init","hub init","dx hub init","SET","time","mode","default","up","repo setup","orchestration","configure","multi-repo","cli","directory","edit",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":38},"01M6H48K267CWEF8YNN3Y49BVT","dx-hub-dispatch","Dispatch a ticket to several repos — open an independent Claude session per repo in VS Code terminals. Use for 'hub dispatch', 'work on ticket across repos'.","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-hub\u002Fskills\u002Fdx-hub-dispatch\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[21,107,28,19,108,37,109,110,111,35,112,113,27,114,30,115,116,117,34,118],"dx hub dispatch","ado","repo","work on","session","open","MCP","URL","vscode","code","across","work",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":38},"01M6H48FAWKTT6AAWT3H80ZKE0","dx-hub-config","View and edit hub configuration — add repos, adjust terminal delay. Use to manage hub settings. Trigger on \"hub config\", \"add repo to hub\", \"terminal delay\".","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-hub\u002Fskills\u002Fdx-hub-config\u002FSKILL.md",[],[21,126,19,127,32,128,109,129,130,131,132,27,90,30,133,24,134,25,94,29],"dx hub config","config","view","manage","trigger","true","adjust","terminal","settings",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":38},"01M6H48BNMYEJY6CCWPYHNQDAT","dx-discover-repos","Resolve which repos a work item touches (explicit directive → simple block → cross-repo table → LLM). Used by the KAI-HUB router to fan an agent out across repos; 'which repos'.","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-hub\u002Fskills\u002Fdx-discover-repos\u002FSKILL.md",[],[142,21,143,29,36,109,117,144,34,145,118,146,19,147,148,149],"discover","dx discover repos","router","directive","simple","block","sonnet","table",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":157,"publishedAt":38},"01M6H487QA1FDSBT1HTZGW4HAQ","dx-upgrade","Upgrade a consumer project to the installed plugin versions — run dx-doctor, fix stale and missing files, list manual actions. Use after upgrading plugins.","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-core\u002Fskills\u002Fdx-upgrade\u002FSKILL.md",[156],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[158,21,159,160,161,162,163,164,165,166,24,25,94,167,168,169,170,27,171,172],"upgrade","dx upgrade","project","actions","search","fix","files","auto","run","list","doctor","manual","missing","plugin","plugins",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":38},"01M6H483MFY4W4TPMWJJPG9JZW","dx-ticket-analyze","Research an ADO\u002FJira ticket and list the source files and assets it involves. Use for 'analyze ticket', 'what files does this touch?', 'find files for this story'.","https:\u002F\u002Fgithub.com\u002Feasingthemes\u002Fdx-aem-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fdx-core\u002Fskills\u002Fdx-ticket-analyze\u002FSKILL.md",[],[35,180,21,181,162,164,114,118,182,24,25,183,94,184,167,185,186,187,108,37],"analyze","dx ticket analyze","haiku","jira","issue","source","atlassian","jira ticket"]