{"id":"9aae5d96-6509-4237-bc86-c5e5b7b0d413","shortId":"J23wDX","kind":"skill","title":"architecture-critic","tagline":"Auto-activate when evaluating system architecture, reviewing component boundaries, assessing coupling between modules, planning large refactors, introducing new layers or abstractions, or when design decisions have long-term structural consequences. Produces structural assessment","description":"# Architecture Critic\n\nA reviewer persona that evaluates architectural decisions for long-term maintainability, appropriate coupling, clear boundaries, and scaling characteristics.\n\n## Perspectives\n\nReferences `perspectives` for multi-angle analysis. Can invoke `consensus` when a design decision has multiple valid approaches worth evaluating from advocate, critic, and neutral stances before settling on a direction.\n\n## Dispatch\n\nCan be dispatched as a subagent by brainstorming or flow-plan workflows when evaluating structural implications of planned changes.\n\n## Direct Invocation\n\n- \"Review the architecture of this module\"\n- \"Are the component boundaries right here?\"\n- \"Is this abstraction justified?\"\n- \"What will be painful to change about this design in six months?\"\n- \"Evaluate coupling in this system\"\n\n<workflow>\n\n## Workflow\n\n### Step 1: Apply Persona\n\nSenior architect reviewing with a 6-12 month horizon. Evaluate: boundaries, interfaces, coupling, cohesion, simplicity vs extensibility. Will this design hold up as the team builds on it? What decisions made today will be expensive to undo?\n\n### Step 2: Structural Checklist\n\nWork through each structural quality check:\n\n1. **Boundaries** — Does each component have one clear responsibility? Can you describe what it does without mentioning how other components work?\n2. **Interfaces** — Are interfaces between components well-defined? Could you swap the implementation without changing consumers?\n3. **Coupling** — What would break if you changed this component? Is the blast radius proportional to the change?\n4. **Cohesion** — Do things that change together live together? Does a single feature change ripple through many unrelated files?\n5. **Abstraction level** — Are abstractions justified by actual use cases (2+ consumers) or speculative? Are there missing abstractions where code is duplicated across boundaries?\n6. **Data flow** — Is it clear how data moves through the system? Are there hidden side channels or global state?\n7. **Scaling characteristics** — What happens at 10x load? Are there obvious bottlenecks (single database, synchronous calls in hot paths)?\n8. **Testability** — Can components be tested in isolation? Are test boundaries aligned with component boundaries?\n9. **Simplicity** — Could this design be simpler and still meet requirements? Is complexity earning its keep?\n\n### Step 3: Report Findings\n\nFor each concern: structural problem, long-term consequence, recommendation. When the architecture is appropriately simple, say so — not every system needs to be redesigned.\n\n</workflow>\n\n<guardrails>\n\n## Guardrails\n\n- No YAGNI violations — do not optimize for hypothetical future requirements\n- No astronaut architecture — no layered abstractions, plugin systems, or generic frameworks that exist in anticipation of use cases not yet real\n- Simple designs that meet current needs beat elegant designs for hypothetical futures\n- Focus on structural problems that will actually cause pain, not theoretical impurity\n\n</guardrails>\n\n<validation>\n\n### Validation Checkpoint\n\nBefore delivering findings, verify:\n\n- [ ] Each concern addresses a structural issue, not cosmetic\n- [ ] At least one finding considers the 6-month horizon\n- [ ] No speculative future requirements proposed\n- [ ] If architecture is sound, explicitly state why it holds up\n\n</validation>\n\n<example>\n\n## Example\n\n**Context:** Module boundary review of an e-commerce order system.\n\n**Finding — Coupling: High (6-month risk)**\nThe `OrderService` directly queries `InventoryDB` tables instead of going through `InventoryService`. Blast radius: any inventory schema change breaks order processing. 6-month risk: high — inventory team plans a schema migration in Q3. Fix: route inventory queries through `InventoryService` API. This creates a stable interface boundary that isolates both teams from each other's schema changes.\n\n**Finding — Abstraction level: Medium**\n`ShippingCalculator` is wrapped in a generic `StrategyProvider<T>` interface, but there is only one implementation and no planned second consumer. This adds indirection without value. Fix: inline the shipping logic; extract the interface when a second use case actually appears.\n\n**Strengths noted:** Payment processing is cleanly separated behind `PaymentGateway` interface with adapter pattern — swapping providers requires changing one file.\n\n</example>\n\n## References Index\n\n- **[Persona](references/persona.md)** — Role, time horizon, approach, and guardrails\n- **[Architecture Checklist](references/checklist.md)** — Nine structural quality checks\n- **[Stances](../perspectives/references/stances.md)** — Underlying stance prompts with ethical guardrails (from perspectives skill)","tags":["architecture","critic","flow","cofin","agent-skills","ai-agents","beads","claude-code","codex","cursor","developer-tools","gemini-cli"],"capabilities":["skill","source-cofin","skill-architecture-critic","topic-agent-skills","topic-ai-agents","topic-beads","topic-claude-code","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-opencode","topic-plugin","topic-slash-commands","topic-spec-driven-development"],"categories":["flow"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cofin/flow/architecture-critic","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cofin/flow","source_repo":"https://github.com/cofin/flow","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (4,718 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-24T01:03:25.054Z","embedding":null,"createdAt":"2026-04-23T13:03:57.668Z","updatedAt":"2026-04-24T01:03:25.054Z","lastSeenAt":"2026-04-24T01:03:25.054Z","tsv":"'-12':159 '/perspectives/references/stances.md':645 '1':150,200 '10x':325 '2':191,221,285 '3':238,370 '4':256 '5':275 '6':158,299,474,507,530 '7':319 '8':338 '9':353 'abstract':25,129,276,279,292,414,566 'across':297 'activ':6 'actual':282,448,606 'adapt':619 'add':589 'address':462 'advoc':82 'align':349 'analysi':67 'angl':66 'anticip':423 'api':548 'appear':607 'appli':151 'approach':78,634 'appropri':53,387 'architect':154 'architectur':2,10,39,46,117,385,411,483,637 'architecture-crit':1 'assess':14,38 'astronaut':410 'auto':5 'auto-activ':4 'beat':436 'behind':615 'blast':250,521 'bottleneck':330 'boundari':13,56,124,163,201,298,348,352,495,554 'brainstorm':100 'break':242,527 'build':178 'call':334 'case':284,426,605 'caus':449 'chang':112,136,236,245,255,261,269,526,564,624 'channel':315 'characterist':59,321 'check':199,643 'checklist':193,638 'checkpoint':455 'clean':613 'clear':55,207,304 'code':294 'cohes':166,257 'commerc':501 'complex':365 'compon':12,123,204,219,226,247,341,351 'concern':375,461 'consensus':70 'consequ':35,381 'consid':472 'consum':237,286,587 'context':493 'cosmet':467 'could':230,355 'coupl':15,54,144,165,239,505 'creat':550 'critic':3,40,83 'current':434 'data':300,306 'databas':332 'decis':29,47,74,182 'defin':229 'deliv':457 'describ':211 'design':28,73,139,172,357,431,438 'direct':91,113,512 'dispatch':92,95 'duplic':296 'e':500 'e-commerc':499 'earn':366 'eleg':437 'ethic':650 'evalu':8,45,80,107,143,162 'everi':392 'exampl':492 'exist':421 'expens':187 'explicit':486 'extens':169 'extract':598 'featur':268 'file':274,626 'find':372,458,471,504,565 'fix':542,593 'flow':103,301 'flow-plan':102 'focus':442 'framework':419 'futur':407,441,479 'generic':418,574 'global':317 'go':518 'guardrail':398,636,651 'happen':323 'hidden':313 'high':506,533 'hold':173,490 'horizon':161,476,633 'hot':336 'hypothet':406,440 'implement':234,582 'implic':109 'impur':453 'index':628 'indirect':590 'inlin':594 'instead':516 'interfac':164,222,224,553,576,600,617 'introduc':21 'inventori':524,534,544 'inventorydb':514 'inventoryservic':520,547 'invoc':114 'invok':69 'isol':345,556 'issu':465 'justifi':130,280 'keep':368 'larg':19 'layer':23,413 'least':469 'level':277,567 'live':263 'load':326 'logic':597 'long':32,50,379 'long-term':31,49,378 'made':183 'maintain':52 'mani':272 'medium':568 'meet':362,433 'mention':216 'migrat':539 'miss':291 'modul':17,120,494 'month':142,160,475,508,531 'move':307 'multi':65 'multi-angl':64 'multipl':76 'need':394,435 'neutral':85 'new':22 'nine':640 'note':609 'obvious':329 'one':206,470,581,625 'optim':404 'order':502,528 'orderservic':511 'pain':134,450 'path':337 'pattern':620 'payment':610 'paymentgateway':616 'persona':43,152,629 'perspect':60,62,653 'plan':18,104,111,536,585 'plugin':415 'problem':377,445 'process':529,611 'produc':36 'prompt':648 'proport':252 'propos':481 'provid':622 'q3':541 'qualiti':198,642 'queri':513,545 'radius':251,522 'real':429 'recommend':382 'redesign':397 'refactor':20 'refer':61,627 'references/checklist.md':639 'references/persona.md':630 'report':371 'requir':363,408,480,623 'respons':208 'review':11,42,115,155,496 'right':125 'rippl':270 'risk':509,532 'role':631 'rout':543 'say':389 'scale':58,320 'schema':525,538,563 'second':586,603 'senior':153 'separ':614 'settl':88 'ship':596 'shippingcalcul':569 'side':314 'simpl':388,430 'simpler':359 'simplic':167,354 'singl':267,331 'six':141 'skill':654 'skill-architecture-critic' 'sound':485 'source-cofin' 'specul':288,478 'stabl':552 'stanc':86,644,647 'state':318,487 'step':149,190,369 'still':361 'strategyprovid':575 'strength':608 'structur':34,37,108,192,197,376,444,464,641 'subag':98 'swap':232,621 'synchron':333 'system':9,147,310,393,416,503 'tabl':515 'team':177,535,558 'term':33,51,380 'test':343,347 'testabl':339 'theoret':452 'thing':259 'time':632 'today':184 'togeth':262,264 'topic-agent-skills' 'topic-ai-agents' 'topic-beads' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-opencode' 'topic-plugin' 'topic-slash-commands' 'topic-spec-driven-development' 'under':646 'undo':189 'unrel':273 'use':283,425,604 'valid':77,454 'valu':592 'verifi':459 'violat':401 'vs':168 'well':228 'well-defin':227 'without':215,235,591 'work':194,220 'workflow':105,148 'worth':79 'would':241 'wrap':571 'yagni':400 'yet':428","prices":[{"id":"f4ff7dfa-37c3-4087-b67a-2d154da25ff7","listingId":"9aae5d96-6509-4237-bc86-c5e5b7b0d413","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cofin","category":"flow","install_from":"skills.sh"},"createdAt":"2026-04-23T13:03:57.668Z"}],"sources":[{"listingId":"9aae5d96-6509-4237-bc86-c5e5b7b0d413","source":"github","sourceId":"cofin/flow/architecture-critic","sourceUrl":"https://github.com/cofin/flow/tree/main/skills/architecture-critic","isPrimary":false,"firstSeenAt":"2026-04-23T13:03:57.668Z","lastSeenAt":"2026-04-24T01:03:25.054Z"}],"details":{"listingId":"9aae5d96-6509-4237-bc86-c5e5b7b0d413","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cofin","slug":"architecture-critic","github":{"repo":"cofin/flow","stars":11,"topics":["agent-skills","ai-agents","beads","claude-code","codex","context-driven-development","cursor","developer-tools","gemini-cli","opencode","plugin","slash-commands","spec-driven-development","subagents","tdd","workflow"],"license":"apache-2.0","html_url":"https://github.com/cofin/flow","pushed_at":"2026-04-19T23:22:27Z","description":"Context-Driven Development toolkit for AI agents — spec-first planning, TDD workflow, and Beads integration.","skill_md_sha":"d791c73c140a9a8df8528106b2c0def8975bbb15","skill_md_path":"skills/architecture-critic/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cofin/flow/tree/main/skills/architecture-critic"},"layout":"multi","source":"github","category":"flow","frontmatter":{"name":"architecture-critic","description":"Auto-activate when evaluating system architecture, reviewing component boundaries, assessing coupling between modules, planning large refactors, introducing new layers or abstractions, or when design decisions have long-term structural consequences. Produces structural assessment with boundary evaluation, coupling analysis, and time-horizon risk — what will be painful to change in 6-12 months. Use when: architecture review needed, evaluating maintainability of a design, checking for premature abstraction or missing abstraction, or assessing whether component boundaries are in the right place. Not for code style, naming conventions, or implementation details within well-bounded components."},"skills_sh_url":"https://skills.sh/cofin/flow/architecture-critic"},"updatedAt":"2026-04-24T01:03:25.054Z"}}