[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CW4PHFNHFNER8V6GXABKCX":3,"skill-same:01M6CW4PHFNHFNER8V6GXABKCX":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":37,"install":38,"resources":51},"01M6CW4PHFNHFNER8V6GXABKCX","project-next",null,"Advance tasks and phases in the lifecycle. Run when the user types \u002Fproject next, finishes a task, or needs to transition phases.","stefans71\u002FFrontierBoard","stefans71","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F66725311?v=4","01M6CW3VPYK13M9K13NZZBXZ36","01M6CW3VTXG8DT51A3FN2SQM1V",6,"MIT","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fproject\u002Fnext\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"next","project next","tasks","run","lifecycle","advance","user","task","2026-11-10 10:12:30",false,"---\nname: project-next\ndescription: Advance tasks and phases in the lifecycle. Run when the user types \u002Fproject next, finishes a task, or needs to transition phases.\n---\n\n# Project Next — Task & Phase Advancement\n\nMove tasks through the state machine and handle phase transitions. References the canonical state machine in `\u002Fproject` router.\n\n---\n\n## Step 1: Read State\n\nRead `tasks.json` v2. Identify:\n- Current active phase\n- Tasks in current phase by status\n- Whether all tasks are closed\n\n---\n\n## Step 2: Determine Action\n\n### If no task is in-progress\n\nShow open tasks in the current phase and ask:\n\n> Which task do you want to work on?\n>\n> 1. APP-003 — API route handlers\n> 2. APP-004 — Error handling middleware\n> 3. APP-005 — Input validation\n\nSet chosen task to `status: \"in-progress\"`. Update `meta.last_modified`.\n\n### If a task is in-progress\n\nAsk what happened:\n\n> **APP-003: API route handlers**\n> Status: in-progress\n>\n> What's the update?\n> 1. **Done** — I'll collect verification and close it\n> 2. **Defer** — park it with a trigger condition\n> 3. **Still working** — just checking in\n\n### Closing a task (Done)\n\nCollect the verification fields defined in the `\u002Fproject` router's canonical state machine:\n\n- `tests_passed`, `test_command`, `test_output_summary`, `verified_at` — required always\n- `spec_coverage` — required ONLY when `test_spec` is non-null\n\nIf the user can't provide test evidence, explain:\n\n> Verification is required to close a task. The board checks these fields at Phase Exit (T5). What test command validates this work?\n\nSet `status: \"closed\"` and populate `verification` object.\n\n### Deferring a task\n\nRequire a trigger condition:\n\n> What condition should promote this back to active?\n> (e.g., \"when user count exceeds 100\", \"when auth provider is chosen\")\n\nSet `status: \"deferred\"`, populate `trigger` field.\n\n---\n\n## Step 3: Phase Transition Check\n\nAfter closing a task, check: **are all tasks in the active phase closed (or deferred)?**\n\nIf yes:\n\n> All tasks in Phase {N} are complete. Ready for Phase Exit review?\n>\n> This triggers Touchpoint 5 (Phase Exit) — Standard mode, full board review.\n> The board will review the git diff from phase start to now, plus all verification fields.\n>\n> Run `\u002Fproject review` to proceed.\n\nIf no: show remaining tasks and suggest picking the next one.\n\n---\n\n## Step 4: Phase Advancement (after board sign-off)\n\nAfter the board signs off at T5:\n\n1. Set phase `status: \"complete\"`, `completed: \"{today}\"`\n2. Create annotated git tag:\n   - Convention: `lifecycle\u002Fphase-{N}-complete`\n   - Check for existing tag: if exists, append `-v2`, `-v3`, etc. (incrementing loop)\n   - Annotation: phase goal + completion date\n3. Activate next phase: `status: \"active\"`, `started: \"{today}\"`\n4. Update `meta.current_phase`\n5. Regenerate `tasks.md` for new phase\n\n> Phase {N} complete! Tagged `lifecycle\u002Fphase-{N}-complete`.\n> Phase {N+1}: {name} is now active.\n>\n> Run `\u002Fproject review` for Phase Plan review (T2), or `\u002Fproject next` to start picking tasks.\n\n---\n\n## Step 5: Phase Rejection Recovery\n\nIf the board rejects at T5:\n\n1. Phase stays `active` — no git tag\n2. Read FIX NOW findings from the review\n3. Create new tasks in the same phase for each FIX NOW finding:\n   - `source: \"board-review-T5\"`\n   - `status: \"open\"`\n   - `type: \"fix\"`\n4. Already-closed tasks stay closed unless specifically named in a finding\n5. Show the user what was added\n\n> Board rejected Phase Exit. {N} new tasks added from FIX NOW findings:\n> - APP-010: {finding title}\n> - APP-011: {finding title}\n>\n> Work through these, then `\u002Fproject next` will re-trigger T5 when all tasks are closed.\n","# Project Next — Task & Phase Advancement\n\nMove tasks through the state machine and handle phase transitions. References the canonical state machine in `\u002Fproject` router.\n\n---\n\n## Step 1: Read State\n\nRead `tasks.json` v2. Identify:\n- Current active phase\n- Tasks in current phase by status\n- Whether all tasks are closed\n\n---\n\n## Step 2: Determine Action\n\n### If no task is in-progress\n\nShow open tasks in the current phase and ask:\n\n> Which task do you want to work on?\n>\n> 1. APP-003 — API route handlers\n> 2. APP-004 — Error handling middleware\n> 3. APP-005 — Input validation\n\nSet chosen task to `status: \"in-progress\"`. Update `meta.last_modified`.\n\n### If a task is in-progress\n\nAsk what happened:\n\n> **APP-003: API route handlers**\n> Status: in-progress\n>\n> What's the update?\n> 1. **Done** — I'll collect verification and close it\n> 2. **Defer** — park it with a trigger condition\n> 3. **Still working** — just checking in\n\n### Closing a task (Done)\n\nCollect the verification fields defined in the `\u002Fproject` router's canonical state machine:\n\n- `tests_passed`, `test_command`, `test_output_summary`, `verified_at` — required always\n- `spec_coverage` — required ONLY when `test_spec` is non-null\n\nIf the user can't provide test evidence, explain:\n\n> Verification is required to close a task. The board checks these fields at Phase Exit (T5). What test command validates this work?\n\nSet `status: \"closed\"` and populate `verification` object.\n\n### Deferring a task\n\nRequire a trigger condition:\n\n> What condition should promote this back to active?\n> (e.g., \"when user count exceeds 100\", \"when auth provider is chosen\")\n\nSet `status: \"deferred\"`, populate `trigger` field.\n\n---\n\n## Step 3: Phase Transition Check\n\nAfter closing a task, check: **are all tasks in the active phase closed (or deferred)?**\n\nIf yes:\n\n> All tasks in Phase {N} are complete. Ready for Phase Exit review?\n>\n> This triggers Touchpoint 5 (Phase Exit) — Standard mode, full board review.\n> The board will review the git diff from phase start to now, plus all verification fields.\n>\n> Run `\u002Fproject review` to proceed.\n\nIf no: show remaining tasks and suggest picking the next one.\n\n---\n\n## Step 4: Phase Advancement (after board sign-off)\n\nAfter the board signs off at T5:\n\n1. Set phase `status: \"complete\"`, `completed: \"{today}\"`\n2. Create annotated git tag:\n   - Convention: `lifecycle\u002Fphase-{N}-complete`\n   - Check for existing tag: if exists, append `-v2`, `-v3`, etc. (incrementing loop)\n   - Annotation: phase goal + completion date\n3. Activate next phase: `status: \"active\"`, `started: \"{today}\"`\n4. Update `meta.current_phase`\n5. Regenerate `tasks.md` for new phase\n\n> Phase {N} complete! Tagged `lifecycle\u002Fphase-{N}-complete`.\n> Phase {N+1}: {name} is now active.\n>\n> Run `\u002Fproject review` for Phase Plan review (T2), or `\u002Fproject next` to start picking tasks.\n\n---\n\n## Step 5: Phase Rejection Recovery\n\nIf the board rejects at T5:\n\n1. Phase stays `active` — no git tag\n2. Read FIX NOW findings from the review\n3. Create new tasks in the same phase for each FIX NOW finding:\n   - `source: \"board-review-T5\"`\n   - `status: \"open\"`\n   - `type: \"fix\"`\n4. Already-closed tasks stay closed unless specifically named in a finding\n5. Show the user what was added\n\n> Board rejected Phase Exit. {N} new tasks added from FIX NOW findings:\n> - APP-010: {finding title}\n> - APP-011: {finding title}\n>\n> Work through these, then `\u002Fproject next` will re-trigger T5 when all tasks are closed.\n",{"name":5,"description":7},"main","e01303ad28862b5c26c950358250aeb4f74090e6",".claude\u002Fskills\u002Fproject\u002Fnext",1,"https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard","https:\u002F\u002Fgithub.com\u002Fstefans71","2026-04-20 07:23:08",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add stefans71\u002FFrontierBoard --skill project-next",{"tool":44,"command":45},"bunx","bunx skills add stefans71\u002FFrontierBoard --skill project-next",{"tool":47,"command":48},"pnpm","pnpm dlx skills add stefans71\u002FFrontierBoard --skill project-next","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fproject\u002Fnext\u002FSKILL.md",true,[52,58,62],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"Workflows\u002FCreate.md","REFERENCE","参考文档",2418,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv4.0.2\u002F.claude\u002Fskills\u002FUtilities\u002FCloudflare\u002FWorkflows\u002FCreate.md",{"path":59,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":60,"sourceHtmlUrl":61},"Workflows\u002FQuery.md",3991,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv4.0.2\u002F.claude\u002Fskills\u002FUtilities\u002FCloudflare\u002FWorkflows\u002FQuery.md",{"path":63,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":64,"sourceHtmlUrl":65},"Workflows\u002FTroubleshoot.md",4376,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FReleases\u002Fv4.0.2\u002F.claude\u002Fskills\u002FUtilities\u002FCloudflare\u002FWorkflows\u002FTroubleshoot.md",[67,80,98,110,120,138],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":26},"01M6CW5BKYDY1PC8YPCHNZN1V5","teardown","Remove a FrontierBoard installation. Run when the user types \u002Fteardown or asks to uninstall, remove, or clean up the board.","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fteardown\u002FSKILL.md",[],[69,74,21,75,24,76,77,78,79],"uninstall","board","remove","up","clean","installation",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":91,"publishedAt":26},"01M6CW599G8TXF87JTYRPHRKJ7","smoke-test","Validate a board installation works end-to-end. Run when the user types \u002Fsmoke-test or asks to test, validate, or verify the board setup.","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsmoke-test\u002FSKILL.md",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[92,93,94,24,95,96,21,97,75,79],"smoke test","smoke","test","validate","setup","verify",{"skillNo":99,"name":96,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":26},"01M6CW56Q6B52QVY7YFDXJCDP2","Set up the Board of Governance. Run when the user types \u002Fsetup or asks to set up, install, or configure the board for the first time.","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsetup\u002FSKILL.md",[],[96,75,24,104,77,105,106,107,108,21,109],"install","time","first","configure","governance","SET",{"skillNo":111,"name":21,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":26},"01M6CW5435Q93Y2Q1427PSDWMA","Run the board agents and synthesise their reports. Run when the user types \u002Frun, asks to run the board, or after \u002Fbrief when the user confirms they're ready to go.","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Frun\u002FSKILL.md",[],[21,116,117,75,24,118,119],"go","brief","ready","reports",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":26},"01M6CW518M6QPGGW3DAT6JNEZQ","review-release","Review a GitHub repo or release using the board. Use when the user types \u002Freview-release, asks to \"review a release\", \"check if this is safe to install\", \"look at the latest version of [repo]\", wants to \"try installing it and see what breaks\", or any variant of reviewing an external GitHub project before contributing to it or installing it.","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Freview-release\u002FSKILL.md",[],[127,128,129,130,131,132,133,134,135,75,24,104,136,137],"review release","release","review","look","safe","github","contributing","repo","check","use","version",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":147,"publishedAt":26},"01M6CW4YSSPY6FXCR6DMZWF9XX","project-tests","Generate test specs (Skeptic writes) and verify test code (Skeptic reviews). Two modes — \u002Fproject tests for specs, \u002Fproject tests --verify for code review.","https:\u002F\u002Fgithub.com\u002Fstefans71\u002FFrontierBoard\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fproject\u002Ftests\u002FSKILL.md",[144],{"categoryNo":145,"categoryName":146,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000007","代码审查",[148,149,150,94,129,151,152,97,153],"project tests","code","generate","verify test","skeptic","code review"]