{"id":"899f835b-3d06-4c82-8c02-81cd1bedd5ea","shortId":"Au4QqV","kind":"skill","title":"spec-orchestrator","tagline":"Skill routing and workflow orchestration. Routes to correct spec skill based on task type. Establishes discipline and manages transitions between workflow phases. Use when starting any conversation or task to determine which spec skill applies.","description":"<EXTREMELY-IMPORTANT>\nIf you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY\nMUST invoke the skill.\n\nIF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.\n\nThis is not negotiable. This is not optional. You cannot rationalize your way out of this.\n</EXTREMELY-IMPORTANT>\n\n# Spec Workflow\n\nYou have skills. You MUST use them. Not \"should.\" Not \"when convenient.\" MUST.\n\nInvoke relevant skills BEFORE any response or action. Even a 1% chance a skill might apply\nmeans you invoke it. If an invoked skill turns out to be wrong for the situation, you don't\nneed to follow it. But you must check.\n\n## The One Rule\n\n**Never write code until the human has reviewed and approved a written plan.**\n\nEvery project goes through this process. A todo list, a single-function utility, a config\nchange — all of them. \"Simple\" projects are where unexamined assumptions cause the most\nwasted work. The spec can be short, the plan can be brief, but you MUST present them\nand get approval.\n\n## Artifacts\n\nEvery feature produces two artifacts in `docs/specs/YYYY-MM-DD-<feature>/`:\n\n```\ndesign.md    ← spec-brainstorm (requirements + research + architecture)\nplan.json    ← spec-plan (tasks, dependencies)\n```\n\n## Skill Routing\n\n```\nspec-brainstorm → Discovery + design + architecture → design.md\nspec-plan        → Implementation plan + tasks → plan.json\nspec-implement   → Execute tasks, track progress, report\nspec-finish      → Post-implementation validation\ncode-subagents   → Parallel dispatch, two-stage review\noracle-architect → DDD patterns, component responsibilities\noracle-testing   → TDD patterns, boundary testing\n```\n\n### \"Create a spec for X\" / Build / Add Feature\n\n```\nspec-brainstorm → spec-plan → spec-implement → spec-finish\n```\n\n### Fix Complex Bug / Refactor\n\n```\nspec-brainstorm (research-heavy) → spec-plan (targeted) → spec-implement\n```\n\n### Write Tests / Testing Questions\n\n```\noracle-testing\n```\n\n### Architecture / Domain Modeling Questions\n\n```\noracle-architect\n```\n\n### Quick Fix / Trivial Change\n\nIf genuinely trivial (typo, single-line config, variable rename) — skip the pipeline.\nBut be honest. If there's any doubt, plan it.\n\n## Hard Transitions\n\n| After completing... | The ONLY next step is... |\n|---------------------|--------------------------|\n| spec-brainstorm | spec-plan |\n| spec-plan | spec-implement |\n| spec-implement | spec-finish |\n\nDo NOT jump from requirements to code. Do NOT jump from research to implementation.\n\n## Iteration Patterns\n\nThe workflow is not purely linear. Expect backflows:\n\n### Research → Research (discovery loop)\n- Brainstorm reveals new requirements → loop back to discovery phase\n- Human adds new scope mid-brainstorm → continue discovery\n\n### Plan → Research (design flaw)\n- Planning reveals design assumptions are wrong → back to brainstorm\n- Tasks can't be decomposed without more context → back to brainstorm\n\n### Implement → Plan (missing tasks)\n- Implementation reveals missing tasks → update plan.json\n- Blocked on dependency not in plan → back to plan\n\n### Implement → Research (fundamental issue)\n- Implementation reveals design is fundamentally wrong → back to brainstorm\n- \"This can't work as designed\" → back to brainstorm\n\n### Finish → Implement (bugs found)\n- Validation finds bugs → back to implement\n- Tests failing → back to implement\n\n### When to escalate\nIf you loop 2+ times on the same issue, stop and ask the human:\n\n> \"We've looped on [issue] twice. Should we reconsider the approach?\"\n\n## Red Flags — You Are Rationalizing\n\n| What you're thinking | Why it's wrong |\n|----------------------|----------------|\n| \"This is too simple for a plan\" | Simple tasks have the most unexamined assumptions |\n| \"I already know how to do this\" | Knowing how ≠ having the human's approval for how |\n| \"The human seems impatient\" | Wasting time on wrong code is worse than planning |\n| \"I'll just do a quick prototype\" | Prototypes become production. Plan it. |\n| \"I need to explore the code first\" | That's the brainstorm phase. Write it in design.md. |\n| \"Let me just fix this one thing\" | One thing becomes three. Plan it. |\n| \"I can plan in my head\" | Plans in your head can't be reviewed or annotated |\n| \"This is just a refactor\" | Refactors touch more code than features. Plan it. |\n| \"I'll write the plan after\" | Post-hoc plans are fiction. Plan before. |\n| \"I need more context first\" | Skills tell you HOW to gather context. Check first. |\n| \"The skill is overkill\" | Simple things become complex. Use it. |\n| \"I know what that skill says\" | Skills evolve. Read current version. Invoke it. |\n| \"This feels productive\" | Undisciplined action wastes time. Skills prevent this. |\n\n## Skill Types\n\n**Process skills** (spec-brainstorm, spec-plan, spec-implement, spec-finish): Follow exactly.\nDon't adapt away discipline.\n\n**Knowledge skills** (oracle-architect, oracle-testing): Adapt principles to\ncontext. These inform decisions within the workflow.\n\nProcess skills come first. Knowledge skills get invoked by process skills when needed.\n\n## User Instructions\n\n\"Add X\" or \"Fix Y\" doesn't mean skip workflows. Instructions say WHAT, not HOW.\nThe skills define HOW.","tags":["spec","orchestrator","atelier","martinffx","agent-skills","agentic-coding","anthropic","claude-code","claude-skills","code-review","codex","codex-skill"],"capabilities":["skill","source-martinffx","skill-spec-orchestrator","topic-agent-skills","topic-agentic-coding","topic-anthropic","topic-claude-code","topic-claude-skills","topic-code-review","topic-codex","topic-codex-skill","topic-opencode","topic-prompt-engineering","topic-sdd","topic-spec-driven-development"],"categories":["atelier"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/martinffx/atelier/spec-orchestrator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add martinffx/atelier","source_repo":"https://github.com/martinffx/atelier","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (5,196 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-05-18T19:05:24.525Z","embedding":null,"createdAt":"2026-05-10T07:03:12.976Z","updatedAt":"2026-05-18T19:05:24.525Z","lastSeenAt":"2026-05-18T19:05:24.525Z","tsv":"'1':46,121 '2':531 'absolut':58 'action':118,734 'adapt':760,771 'add':300,437,796 'alreadi':581 'annot':665 'appli':38,51,66,126 'approach':552 'approv':166,218,593 'architect':282,344,767 'architectur':233,247,338 'artifact':219,224 'ask':539 'assumpt':195,452,579 'away':761 'back':432,455,466,485,498,507,517,522 'backflow':422 'base':14 'becom':617,646,713 'block':479 'boundari':292 'brainstorm':230,244,304,320,383,427,442,457,468,500,509,631,746 'brief':210 'bug':316,512,516 'build':299 'cannot':89 'caus':196 'chanc':47,122 'chang':186,348 'check':153,705 'choic':75 'code':159,272,405,604,626,674 'code-subag':271 'come':783 'complet':375 'complex':315,714 'compon':285 'config':185,356 'context':465,696,704,774 'continu':443 'conveni':109 'convers':30 'correct':11 'creat':294 'current':726 'ddd':283 'decis':777 'decompos':462 'defin':813 'depend':239,481 'design':246,447,451,494,506 'design.md':227,248,636 'determin':34 'disciplin':19,762 'discoveri':245,425,434,444 'dispatch':275 'docs/specs/yyyy-mm-dd-':226 'doesn':801 'domain':339 'doubt':369 'escal':527 'establish':18 'even':44,119 'everi':170,220 'evolv':724 'exact':757 'execut':259 'expect':421 'explor':624 'fail':521 'featur':221,301,676 'feel':731 'fiction':690 'find':515 'finish':266,313,398,510,755 'first':627,697,706,784 'fix':314,346,640,799 'flag':554 'flaw':448 'follow':148,756 'found':513 'function':182 'fundament':490,496 'gather':703 'genuin':350 'get':217,787 'goe':172 'hard':372 'head':655,659 'heavi':323 'hoc':687 'honest':364 'human':162,436,541,591,597 'impati':599 'implement':252,258,269,310,330,392,395,412,469,473,488,492,511,519,524,752 'inform':776 'instruct':795,806 'invok':60,111,129,133,728,788 'issu':491,536,546 'iter':413 'jump':401,408 'know':582,587,718 'knowledg':763,785 'let':637 'line':355 'linear':420 'list':178 'll':610,680 'loop':426,431,530,544 'manag':21 'mean':127,803 'mid':441 'mid-brainstorm':440 'might':50,125 'miss':471,475 'model':340 'must':59,77,102,110,152,213 'need':146,622,694,793 'negoti':83 'never':157 'new':429,438 'next':378 'one':155,642,644 'option':87 'oracl':281,288,336,343,766,769 'oracle-architect':280,342,765 'oracle-test':287,335,768 'orchestr':3,8 'overkil':710 'parallel':274 'pattern':284,291,414 'phase':25,435,632 'pipelin':361 'plan':169,207,237,251,253,307,326,370,386,389,445,449,470,484,487,572,608,619,648,652,656,677,683,688,691,749 'plan.json':234,255,478 'post':268,686 'post-hoc':685 'post-implement':267 'present':214 'prevent':738 'principl':772 'process':175,742,781,790 'produc':222 'product':618,732 'progress':262 'project':171,191 'prototyp':615,616 'pure':419 'question':334,341 'quick':345,614 'ration':90,557 're':560 'read':725 'reconsid':550 'red':553 'refactor':317,670,671 'relev':112 'renam':358 'report':263 'requir':231,403,430 'research':232,322,410,423,424,446,489 'research-heavi':321 'respons':116,286 'reveal':428,450,474,493 'review':164,279,663 'rout':5,9,241 'rule':156 'say':722,807 'scope':439 'seem':598 'short':205 'simpl':190,569,573,711 'singl':181,354 'single-funct':180 'single-lin':353 'situat':142 'skill':4,13,37,49,62,65,100,113,124,134,240,698,708,721,723,737,740,743,764,782,786,791,812 'skill-spec-orchestrator' 'skip':359,804 'source-martinffx' 'spec':2,12,36,96,202,229,236,243,250,257,265,296,303,306,309,312,319,325,329,382,385,388,391,394,397,745,748,751,754 'spec-brainstorm':228,242,302,318,381,744 'spec-finish':264,311,396,753 'spec-impl':256,308,328,390,393,750 'spec-orchestr':1 'spec-plan':235,249,305,324,384,387,747 'stage':278 'start':28 'step':379 'stop':537 'subag':273 'target':327 'task':16,32,69,238,254,260,458,472,476,574 'tdd':290 'tell':699 'test':289,293,332,333,337,520,770 'thing':643,645,712 'think':41,561 'three':647 'time':532,601,736 'todo':177 'topic-agent-skills' 'topic-agentic-coding' 'topic-anthropic' 'topic-claude-code' 'topic-claude-skills' 'topic-code-review' 'topic-codex' 'topic-codex-skill' 'topic-opencode' 'topic-prompt-engineering' 'topic-sdd' 'topic-spec-driven-development' 'touch':672 'track':261 'transit':22,373 'trivial':347,351 'turn':135 'twice':547 'two':223,277 'two-stag':276 'type':17,741 'typo':352 'undisciplin':733 'unexamin':194,578 'updat':477 'use':26,78,103,715 'user':794 'util':183 'valid':270,514 'variabl':357 've':543 'version':727 'wast':199,600,735 'way':92 'within':778 'without':463 'work':200,504 'workflow':7,24,97,416,780,805 'wors':606 'write':158,331,633,681 'written':168 'wrong':139,454,497,565,603 'x':298,797 'y':800","prices":[{"id":"5fa88d02-e496-4242-bb25-8c662dcc2099","listingId":"899f835b-3d06-4c82-8c02-81cd1bedd5ea","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"martinffx","category":"atelier","install_from":"skills.sh"},"createdAt":"2026-05-10T07:03:12.976Z"}],"sources":[{"listingId":"899f835b-3d06-4c82-8c02-81cd1bedd5ea","source":"github","sourceId":"martinffx/atelier/spec-orchestrator","sourceUrl":"https://github.com/martinffx/atelier/tree/main/skills/spec-orchestrator","isPrimary":false,"firstSeenAt":"2026-05-10T07:03:12.976Z","lastSeenAt":"2026-05-18T19:05:24.525Z"}],"details":{"listingId":"899f835b-3d06-4c82-8c02-81cd1bedd5ea","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"martinffx","slug":"spec-orchestrator","github":{"repo":"martinffx/atelier","stars":23,"topics":["agent-skills","agentic-coding","anthropic","claude-code","claude-skills","code-review","codex","codex-skill","opencode","prompt-engineering","sdd","spec-driven-development"],"license":"mit","html_url":"https://github.com/martinffx/atelier","pushed_at":"2026-05-18T06:56:45Z","description":"An atelier for Opencode, Claude Code, and other coding agents: spec-driven workflows, deep thinking, and code quality.","skill_md_sha":"c89223e65d23390ea88f885f80364b663304e6bb","skill_md_path":"skills/spec-orchestrator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/martinffx/atelier/tree/main/skills/spec-orchestrator"},"layout":"multi","source":"github","category":"atelier","frontmatter":{"name":"spec-orchestrator","description":"Skill routing and workflow orchestration. Routes to correct spec skill based on task type. Establishes discipline and manages transitions between workflow phases. Use when starting any conversation or task to determine which spec skill applies."},"skills_sh_url":"https://skills.sh/martinffx/atelier/spec-orchestrator"},"updatedAt":"2026-05-18T19:05:24.525Z"}}