Extract `/ultra-cc-architect-local` and `/ultra-skill-author-local` plus all 7 supporting agents, the `cc-architect-catalog` skill (13 files), the `ngram-overlap.mjs` IP-hygiene script, and the skill-factory test fixtures from `ultraplan-local` v2.4.0 into a new `ultra-cc-architect` plugin v0.1.0. Why: ultraplan-local had drifted into containing two distinct domains — a universal planning pipeline (brief → research → plan → execute) and a Claude-Code-specific architecture phase. Keeping them together forced users to inherit an unfinished CC-feature catalog (~11 seeds) when they only wanted the planning pipeline, and locked the catalog and the pipeline into the same release cadence. The architect was already optional and decoupled at the code level — only one filesystem touchpoint remained (auto-discovery of `architecture/overview.md`), which already handles absence gracefully. Plugin manifests: - ultraplan-local: 2.4.0 → 3.0.0 (description + keywords updated) - ultra-cc-architect: new at 0.1.0 (pre-release; catalog is thin, Fase 2/3 of skill-factory unbuilt, decision-layer empty, fallback list still needed) What stays in ultraplan-local: brief/research/plan/execute commands, all 19 planning agents, security hooks, plan auto-discovery of `architecture/overview.md` (filesystem-level contract, not code-level). What moved (28 files via git mv, R100 — full history preserved): - 2 commands, 8 agents, 1 skill catalog (13 files), 2 scripts, 8 fixtures Documentation updates: plugin CLAUDE.md and README.md for both plugins, root README.md (added ultra-cc-architect section, updated ultraplan-local section), root CLAUDE.md (added ultra-cc-architect to repo-struktur), marketplace.json (registered ultra-cc-architect), ultraplan-local CHANGELOG.md (v3.0.0 entry with migration guidance). Test verification: ngram-overlap.test.mjs passes 23/23 from new location. Memory updated: feedback_no_architect_until_v3.md now points at the new plugin and reframes the threshold around catalog maturity rather than an ultraplan-local milestone. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
12 KiB
| name | description | argument-hint | model | allowed-tools |
|---|---|---|---|---|
| ultra-cc-architect-local | Match brief+research against available Claude Code features; produce architecture note with explicit gaps | --project <dir> [--fg | --quick | --no-gaps] | opus | Agent, Read, Glob, Grep, Write, Edit, Bash, AskUserQuestion |
Ultra CC Architect Local v1.0
Valgfri pipeline-kommando som matcher oppgavens behov (brief + research) mot tilgjengelige Claude Code-features (Hooks, Subagents, Skills, Output Styles, MCP, Plan Mode, Worktrees, Background Agents) og produserer et arkitekturnotat med eksplisitt gap-seksjon.
Pipelinen er 5-stegs når denne kommandoen er med:
/ultrabrief-local → brief.md
/ultraresearch-local → research/*.md
/ultra-cc-architect-local → architecture/overview.md + gaps.md (this command)
/ultraplan-local → plan.md
/ultraexecute-local → execution
Designprinsipp — selvlærende, men ikke autonom. Kommandoen leser
en kuratert skill-katalog (skills/cc-architect-catalog/) med seed-
skills for hver CC-feature. Katalogen utvides over tid av en egen
skill-factory (separat utviklingsprosess). Arkitekturnotatet er et
forslag — brukeren godkjenner før plan-fasen.
Pipeline-integrasjon. /ultraplan-local oppdager automatisk
{project_dir}/architecture/overview.md og bruker feature-forslagene
som priors (ikke mandater) under exploration og planning.
Phase 1 — Parse mode and validate input
Parse $ARGUMENTS for flags. Ordered precedence:
-
--project <dir>(PÅKREVD) — les{dir}/brief.mdog auto-oppdag{dir}/research/*.md. Skriv til{dir}/architecture/. Hvis{dir}eller{dir}/brief.mdmangler:Error: project directory not initialized. Run /ultrabrief-local first. Missing: {dir}/brief.mdSett project_dir = {dir}, brief_path = {dir}/brief.md. Sett architecture_dir = {dir}/architecture/ — opprettes i Phase 2 hvis den mangler.
-
--fg— no-op alias beholdt for bakoverkompatibilitet. Alle faser kjører alltid inline i main-kontekst som av v2.4.0. Sett execution = foreground (eneste modus). -
--quick— hopp over Phase 6 (adversarial review). Sett mode = quick. -
--no-gaps— utelatgaps.md(gap-seksjonen beholdes internt ioverview.md). Sett mode_suffix = no-gaps. (Kan kombineres med--quick.) -
Hvis
--projectmangler: vis usage og stopp:
Usage: /ultra-cc-architect-local --project <dir> [--fg] [--quick] [--no-gaps]
A project directory is required. Run /ultrabrief-local first to create one.
Modes:
default Foreground pipeline → overview.md + gaps.md
--fg No-op alias (foreground is the only mode as of v2.4.0)
--quick Skip adversarial review (no architecture-critic pass)
--no-gaps Do not write gaps.md (gap-section stays inside overview.md)
Examples:
/ultra-cc-architect-local --project .claude/projects/2026-04-18-jwt-auth
/ultra-cc-architect-local --project .claude/projects/2026-04-18-jwt-auth --fg
/ultra-cc-architect-local --project .claude/projects/2026-04-18-jwt-auth --fg --quick
Pipeline position (5-steg):
/ultrabrief-local → /ultraresearch-local → /ultra-cc-architect-local
→ /ultraplan-local → /ultraexecute-local
Ikke fortsett forbi dette steget hvis --project mangler.
Les briefen
Les {brief_path} og parse frontmatter. Hent:
task— one-liner for statsslug— brukes i overview-frontmatterproject_dir— hvis satt, kryssjekk mot flag; mismatch → advarsel, men bruk flag-verdienbrief_quality—complete | partial. Partial briefer er lovlige; noter i overview.md under "Open questions".
Scan research/
Glob {project_dir}/research/*.md. Lagre liste som
research_paths. Zero research er lovlig.
Rapporter detektert modus
Mode: foreground{, quick}{, no-gaps}
Project: {project_dir}
Brief: {brief_path} ({brief_quality})
Research: {N} files detected
Phase 2 — Forbered output-mappe (foreground)
Opprett {architecture_dir} hvis den ikke eksisterer (mkdir -p).
Rapporter til brukeren:
Architecture pipeline running in foreground.
Project: {project_dir}
Brief: {brief_path}
Research: {N} briefs
Output: {architecture_dir}/overview.md (+ gaps.md)
Fortsett deretter inline til neste fase.
Hvorfor foreground? Som av v2.4.0 spawnes
architect-orchestratorikke lenger som en background-agent. Claude Code-harnessen eksponerer ikke Agent-tool til sub-agenter, så en orchestrator startet medrun_in_background: truekan ikke spawnefeature-matcher/gap-identifier/architecture-critic-swarm og degraderer stille til enkelt-kontekst-resonnering. Å kjøre fasene inline i main-kontekst holder swarm-en intakt. Brukclaude -pi et separat terminal-vindu for langvarige headless-kjøringer.
Alle resterende faser kjører inline i hovedkommandoens kontekst.
Phase 3 — Read inputs and audit the catalog
Les briefen i sin helhet. Hent Intent, Goal, Non-Goals, Constraints, Preferences, NFRs, Success Criteria, Research Plan, Open Questions, Prior Attempts.
Les hver research-brief sitt Executive Summary + Recommendation (2–3 setninger per brief).
Les ${CLAUDE_PLUGIN_ROOT}/skills/cc-architect-catalog/SKILL.md for å
lære taxonomy og lag-modellen.
Glob ${CLAUDE_PLUGIN_ROOT}/skills/cc-architect-catalog/*.md
(unntatt SKILL.md). Hvis glob returnerer null filer: sett
catalog_empty = true (ikke feil — feature-matcher har fallback).
Opprett {architecture_dir} hvis den ikke eksisterer.
Phase 4 — Feature matching (parallel swarm)
Launch to agents i parallell, i én melding:
- feature-matcher (model: sonnet). Prompt med brief_path, research_paths, catalog_root, project_dir.
- gap-identifier (model: sonnet). Samme input. Jobber uavhengig av feature-matcher (off briefen og katalogen direkte).
Pass konkrete filstier, ikke inlined content.
Etter begge returnerer:
fallback_used = truehviscatalog_emptyeller feature-matcher rapporterer det.- Trekk ut feature-liste, rationales, confidences, integration-noter fra feature-matcher.
- Trekk ut gaps, out-of-scope, katalog-dekningsstats fra gap-identifier.
Phase 5 — Synthesize architecture/overview.md
Skriv {architecture_dir}/overview.md.
Frontmatter:
---
task: <from brief>
slug: <from brief>
created: <ISO date>
source_brief: <relative path to brief.md>
source_research: [<list of relative research paths>]
skills_consulted: [<list of skill `name` values>]
cc_features_proposed: [<list of feature_id values>]
review_status: pending
---
Seks seksjoner i denne rekkefølgen:
- Context — 3 setninger. Paraphrase brief Intent + Goal.
- Proposed CC features — tabell: Feature | Rationale (brief anchor) | Supporting skill | Confidence. Én rad per foreslått feature. Behold primary/secondary/fallback-grupperingen som underseksjoner hvis feature-matcher leverte dem.
- Feature composition — hvordan features samspiller. Sekvens, konflikter, delte tilstander, fallbacks. 3–6 bullets.
- Coverage gaps identified — ALLTID tilstede, også når tom.
Hvis tom, skriv "No coverage gaps identified — catalog covers all
features this task requires." Hvis ikke-tom, oppsummer hver gap i
én linje. Full issue-draft-tekst går til
gaps.mdi Phase 7 (med mindre--no-gaps). - Alternatives considered — minst én alternativ feature- kombinasjon med grunn for avvisning. Rationale må referere briefen.
- Open questions — hva plan-fasen må avgjøre. Inkluder evt. uløste tradeoffs fra feature-matcher + briefens egne Open Questions.
Phase 6 — Adversarial review
Hvis mode = quick: hopp over denne fasen. Sett
critic_verdict = "SKIPPED" og guardian_verdict = "SKIPPED".
Fortsett til Phase 7.
Launch to reviewere i parallell:
- architecture-critic (model: sonnet). Input: overview.md, brief_path, research_paths, catalog_root.
- scope-guardian (model: sonnet). Prompt eksplisitt: "The artifact under review is an architecture note (not an implementation plan). Verify that the proposed features align with brief requirements. Flag scope creep (features not justified by the brief) and scope gaps (brief requirements no proposed feature addresses)."
Håndter verdikter:
- PASS + ALIGNED — note ferdig.
review_status: approved. - REVISE fra critic — revidér notatet i plass, adresser hver
major finding. Re-launch architecture-critic én gang. Fortsatt
REVISE → emit findings som
## Review notes-seksjon nederst, fortsett. Ikke loop. - BLOCK fra critic — revidér for å fjerne blocker (typisk
hallucinert feature eller manglende anchor). Re-launch én gang.
Fortsatt BLOCK →
review_status: needs_rewrite, surface findings i Open Questions. - CREEP / GAP / MIXED fra guardian — append
## Scope review- subseksjon med funnene. Ikke re-synthesize med mindre combined med critic REVISE/BLOCK.
Oppdater review_status i frontmatter etter resultatet.
Phase 7 — Present, write gaps.md, stats
gaps.md — skrives med mindre --no-gaps. Format:
# Coverage gaps — <task>
These are issue-ready drafts. Copy to the project's git host manually
when you decide a gap warrants tracking. No auto-creation.
---
<gap 1 full draft>
---
<gap 2>
...
Zero gaps: skriv en-liner ("No coverage gaps identified.") slik at filstaten er deterministisk.
Stats — append én linje til
${CLAUDE_PLUGIN_DATA}/ultra-cc-architect-local-stats.jsonl:
{
"ts": "<ISO-8601>",
"task": "<brief task, first 100 chars>",
"mode": "<default|quick|no-gaps|quick+no-gaps|foreground|foreground+quick|...>",
"slug": "<from brief>",
"project_dir": "<project_dir>",
"architecture_path": "<architecture_dir>/overview.md",
"gaps_path": "<architecture_dir>/gaps.md | null>",
"skills_catalog_size": <N>,
"skills_consulted": <N>,
"features_proposed": <N>,
"gaps_identified": <N>,
"critic_verdict": "<PASS|REVISE|BLOCK|SKIPPED>",
"guardian_verdict": "<ALIGNED|CREEP|GAP|MIXED|SKIPPED>",
"fallback_used": <true|false>
}
Hvis ${CLAUDE_PLUGIN_DATA} ikke er satt eller ikke skrivbar, skip
stats silently.
Summary til brukeren:
## Ultra-CC-Architect Complete
**Task:** <task>
**Project:** <project_dir>
**Architecture note:** <architecture_dir>/overview.md
**Gaps draft:** <architecture_dir>/gaps.md | skipped (--no-gaps)
**Features proposed:** N (primary: N, secondary: N, fallback: N)
**Gaps identified:** N
**Review:** <critic_verdict> / <guardian_verdict>
### Primary features
- <feature 1>: <one-line rationale>
- <feature 2>: ...
### Top gaps (if any)
- <gap 1>
- <gap 2>
Next step: /ultraplan-local --project <project_dir>
(the architecture note is auto-discovered as extra context)
Hard rules
- Catalog is ground truth. Hver foreslått feature må komme fra
katalogens
cc_feature-taxonomy eller feature-matcher's dokumenterte fallback-liste.architecture-criticblokkerer hallucinated features. - Brief is anchor. Hver foreslått feature må sitere en konkret brief-seksjon (Intent/Goal/Constraint/NFR/Success Criterion). Features uten anchor fjernes under review.
- Gap ≠ error. "Coverage gaps identified"-seksjonen er alltid til stede — tom eller full. Brief §4.5 ("Mangel ≠ feil").
- No auto-issue-creation. Gaps er drafts i
gaps.md. Brukeren avgjør hva som postes. - Sonnet for sub-agents. Opus kun for orchestrator og hoved- kommandoen.
- Privacy. Aldri logg secrets, tokens, credentials fra brief, research eller katalog.
- Idempotent. Re-kjøring overskriver
overview.mdoggaps.md. Stats-linjene akkumuleres. - Graceful degradation. Tom katalog → fallback-liste. Manglende research → jobb kun fra brief. Partial brief → noter i Open Questions.
- Additiv i pipeline.
/ultraplan-localoppdager overview.md automatisk men må fungere uendret om filen mangler. - No third-party content copied (brief §4.4). Seed-skills er håndskrevet. Fremtidig skill-factory-output håndterer IP-hygiene separat.
- No n-gram computation here. Feltet
ngram_overlap_scorerespekteres (ikke-null > threshold → flagge), men beregnes av skill-factory, ikke denne kommandoen.