Sync Architecture (post-implementation)
SkillDocs & knowledgePost-implementation documentation-sync detector. Spins up ONE read-only subagent on a completed task's diff to find everything the change introduced that the architecture docs don't yet know about — new endpoints, patterns, dependencies, domain terms, ADR-worthy decisions — routed to the exact doc each belongs in. Autonomous runs apply only append-only safe additions and defer domain/ADR reshapes; interactive runs present the proposed doc deltas to pick. Use after a task's missions are done (from create-task / start-task / start-roadmap) or standalone on a diff.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Sync Architecture (post-implementation) skill
What this skill tells your AI
The instructions your AI receives, as published by ayoubben18/ab-method in .agents/skills/sync-architecture/SKILL.md and read by ahel’s review.
Keep docs/architecture/* and the domain docs live by detecting, from a completed task's diff, what
the change introduced that the docs haven't caught up with — then proposing the exact doc deltas. It runs
in the same post-implementation phase as ../review-implementation/SKILL.md,
but asks a different question:
review-implementationasks "is this diff good code?" — this skill asks "does this diff introduce anything the docs don't yet know about?" The first is code debt; this is documentation drift.
It is the automated detection half of the manual /update-architecture workflow. Where
/update-architecture is a heavy, human-invoked pass (and also runs the improve-codebase-architecture
deepening loop), this skill is a lightweight detector that runs automatically after each task so the docs
stop silently drifting. It reuses /update-architecture's routing table — it does not invent its own.
Silence is the default output. A task that introduced nothing doc-worthy (a bug fix, styling, a trivial CRUD following existing patterns) produces no deltas — that is the normal case. A finding survives only if the docs are genuinely now wrong or incomplete. Never invent doc churn to look thorough.
ALWAYS check .ab-method/structure/index.yaml FIRST for where the architecture and domain docs live —
paths are user-configurable. Sweep only what this task changed — the cohesive diff across its missions
(git diff for the commit range) plus its progress-tracker.md mission summaries. This is not a
whole-repo doc audit.
Process
1. Gather diff + context
- The changed files and their
git difffor the task's commit range. - The task's
progress-tracker.mdMission Summaries — the per-mission Files / Built / Integrates with bullets already enumerate most of what's new. - The current architecture + domain docs, so the detector proposes only what's genuinely missing
(skip files that don't exist):
docs/architecture/tech-stack.md,frontend-patterns.md,backend-patterns.md,UBIQUITOUS_LANGUAGE.md,CONTEXT.md,docs/adr/.
2. Spin up ONE read-only detector subagent
Spawn a single subagent — architecture-sync — with the diff, the mission summaries, the current
docs, and the task's unresolved-questions.md if it has one. It is read-only: it returns a routed findings list (often empty) and edits nothing. Isolating it
keeps the doc analysis out of the orchestrator's context. On Codex (spawn_agent is one level deep)
spawn it at the orchestrator's own level; on Claude it may nest. One detector is enough — the whole
point is a single sweep of the change.
Its brief — detect only what the docs don't already capture, routed with /update-architecture's
table:
| Finding | Routes to (update-architecture step) |
|---|---|
| New / renamed / moved endpoint, CLI command, cron, webhook, queue consumer | tech-stack.md Entry Points (2a) — and backend-patterns.md § API if a convention shifted |
| New component / service / state / auth pattern, or a pattern swapped | frontend-patterns.md / backend-patterns.md (2b) |
| New dependency, third-party API/queue, new limit/budget, test-framework shift | tech-stack.md Stack / External Services / Constraints / Testing (2c) |
| New domain term used in code, or a term whose meaning shifted | UBIQUITOUS_LANGUAGE.md (+ CONTEXT.md if meaning shifted) (2d) |
| A hard-to-reverse, surprising, trade-off-carrying decision | ADR candidate (2e) — never written inline; defer to /domain-model |
For each finding return: What (the concrete thing the diff introduced, citing the file/mission), Doc (the exact target file + section), Proposed delta (the append-only line or short section to add), Class (see Step 3).
Example: "New endpoint
POST /charges(src/api/charges.ts, mission 2) — not in tech-stack.md Entry Points. Proposed delta: addPOST /charges — create a charge (auth: bearer)under Entry Points. Class: safe-add."
Never document a black box as established practice. If the diff contains TODO(UQ-n) seams recorded
in the task's unresolved-questions.md, the placeholder behind them is provisional by construction — do
not write it into tech-stack.md as a constraint, into a patterns doc as "the way we do this", or into
UBIQUITOUS_LANGUAGE.md as a term. A parked question is also never an ADR candidate: an ADR records a
decision that was made, and this one wasn't. The real thing the docs may be missing is what the change
built around the black box (the new endpoint, the new dependency, the seam's existence) — route that
normally, and describe the placeholder only as what it is, e.g. "currency is fixed to USD pending UQ-1".
When the question is later answered via /extend-task, the resulting decision syncs like any other.
Out of scope — do not raise: code-quality issues (that's review-implementation), whole-repo
deepening opportunities (that's /improve-codebase-architecture), or rewrites of existing prose. With
nothing the docs are missing, return exactly: Docs in sync — no architecture updates needed.
3. Classify each finding
safe-add— an append-only addition that follows/update-architecture's "add, don't rewrite" rule: a new Entry Points line, a new dependency, a new pattern subsection, a new glossary term. Purely additive, no existing prose touched.needs-judgment— anything that would change or deprecate existing prose (a pattern was swapped, a term's meaning shifted, an endpoint convention moved), a new bounded context, or an ADR candidate. These reshape the docs and belong to a human — route them to/domain-model(domain / ADR) or/update-architecture(prose deprecation), don't apply them here.
4. Act — by mode
Interactive (manual create-task tail, or standalone): present the proposed deltas grouped by target
doc, each marked safe-add / needs-judgment. Apply the safe-adds the user approves; for
needs-judgment findings, point at the right workflow (/domain-model, /update-architecture) rather
than editing. Report what landed.
Autonomous (start-task / start-roadmap — afk): the orchestrator (not the detector) applies:
- Apply every
safe-addto its target doc — append-only, preserving format and tone, with a### Recent Updates (YYYY-MM-DD)block for a notable shift (per/update-architectureStep 3). Docs are prose, not code, so there is no test to re-run — but never rewrite or delete existing content; if a finding can't be expressed as a pure addition, it isn't asafe-add— leave it open. - Commit the doc additions as one
docs(<task>): sync architecture docs(repo convention). Nothing to add → no commit. - Leave every
needs-judgmentfinding for the user — record them in the task'sreview.md(thereview-implementationskill's file, if it ran) under an Architecture sync heading, or in a short note in the run report. Never write an ADR and never deprecate prose autonomously — those need/domain-model//update-architecture.
Never prompt in autonomous mode — anything that isn't a pure safe-add stays open for the user.
Key Principles
- Documentation drift, not code quality — a distinct lens from
review-implementation; the two run side by side in the post-impl phase. - Detection half of
/update-architecture— reuses its routing table (2a–2e) and its "add, don't rewrite" rule; the full manual workflow still owns prose deprecation + the deepening loop. - Silent by default — most tasks introduce nothing doc-worthy; produce no deltas then.
- Autonomous stays conservative — append-only safe-adds only; domain reshapes and ADRs are always deferred to a human, so the docs never fill with noise.
- Scoped to the task's diff — never a whole-repo doc audit.
Remember
- Check
.ab-method/structure/index.yamlfor paths. - The task's mission summaries already list Files / Built — start there, confirm against the diff.
- Always check Entry Points for API drift, even when the diff didn't obviously touch routing — the
most common stale-doc victim (inherited from
/update-architecture). - Defer anything that rewrites prose, reshapes the domain, or is ADR-worthy to
/domain-model//update-architecture— this skill only adds.
Signals
- GitHub stars
- 190
- Forks
- 14
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
sync-architecture- Source
- github.com/ayoubben18/ab-method