Skip to content

track: arch-md-v2-20260428 #5

Description

@amondnet

ARCHITECTURE.md v2 Revision

Track: arch-md-v2-20260428
Type: chore (docs)

Overview

Rewrite the load-bearing sections of ARCHITECTURE.md to reflect the athens-v2 architectural pivot: replace the static-install pipeline (detect → resolve → fetch → convert → write Markdown to .claude/skills/spring-*/) with a dynamic-loading skill that delegates to @pleaseai/ask at runtime to fetch Spring reference content from GitHub on demand.

This is a docs-only track. No source files are added, modified, or removed. The track exists so that the v2 direction is documented in the same planning PR that introduces it (sibling tracks: plugin-scaffold-20260428, build-file-detect-20260428), preventing a window where the implementation lags the architecture document or vice versa.

ARCHITECTURE.md is currently the team's single bird's-eye view of the system. After this revision, a reader should be able to open ARCHITECTURE.md and reach a complete and correct understanding of the v2 install model without cross-referencing track specs or PR descriptions.

Scope

Sections to rewrite

  • § System Overview — replace the static-pipeline narrative with the dynamic-loading model. Explain that install produces a thin per-component skill that, at the moment Claude Code invokes it, calls @pleaseai/ask to fetch the relevant Spring reference content from upstream GitHub at the resolved version ref.
  • § Entry Points — remove "the install pipeline" framing as a sequence ending in conversion; replace with two distinct entry points: (1) /spring:install writes thin skills, (2) skill invocation at runtime delegates to @pleaseai/ask. Each entry point's "first file to read" pointer needs updating.
  • § Module Reference — remove rows for prebuilt/ and any Antora-conversion library scaffolding that was justified solely by the static pipeline. Add a row for the runtime @pleaseai/ask boundary (likely a thin wrapper module under scripts/lib/ask-bridge.ts or similar — exact file naming is the implementing track's call). Update existing rows to reflect that scripts/fetch.ts no longer exists; the corresponding domain function in v2 is a skill-manifest writer, not a doc fetcher/converter.
  • § Architecture Invariants — remove invariants that pertained only to the static pipeline (Antora conversion, prebuilt archive sha256, nightly-build idempotency, etc.). Add invariants that protect the v2 model: (a) install-time output is metadata only (no Markdown bodies); (b) the @pleaseai/ask call is the single network boundary at runtime; (c) the resolved Boot version pins the GitHub ref used by ask (no drift between detected version and fetched content).

Sections to add

  • § Install Model (v2) — new section explaining the install-time vs. runtime split, the data flow from detection through @pleaseai/ask, and the contract between the spring plugin and @pleaseai/ask (what shape the spring plugin's skill manifest takes, what ask is asked to do).

Sections to leave untouched

  • § Cross-Cutting Concerns — most content (error handling, logging, security boundaries) carries over; only the "doc conversion" subsection (if present) is replaced with the runtime-fetch equivalent.
  • § Quality Notes — review for stale references but do not rewrite as a whole.
  • Headings outside the listed sections must be preserved verbatim so cross-PR references still resolve.

Coordination with sibling tracks

  • plugin-scaffold-20260428 spec already promised that ARCHITECTURE.md would be revised in a separate track and that scaffold should not touch it. This track delivers on that promise. The order in which the three tracks merge does not matter for correctness, since this track is docs-only and the scaffold track touches no overlapping files.
  • build-file-detect-20260428 spec is architecture-agnostic (the DetectResult contract is the same in both pipelines), so this revision does not change anything that detect-track depends on.

Success Criteria

  • SC-1: A reader who opens ARCHITECTURE.md cold can describe the v2 install model in one paragraph without referring to any other file.
  • SC-2: Internal consistency: every section in the revised ARCHITECTURE.md agrees with every other section. There are no places where one section describes the static pipeline and another describes the dynamic one. (Reviewer-verified; no automation.)
  • SC-3: No broken links or anchors inside ARCHITECTURE.md. Every [text](#section) resolves to an existing heading; every relative link to a sibling file (README.md, .please/docs/knowledge/*.md) points at a file that still exists. (Verified by bun run lint:md if a markdown linter is wired by the time this lands; otherwise manual.)
  • SC-4: References to prebuilt/, antora-rules.ts, "HTML → Markdown conversion", "nightly archive build", and scripts/fetch.ts (in the static-pipeline meaning) are removed from the document. Searching the post-revision file for any of these strings returns zero matches in the body — they may appear only inside an explicit "removed in v2" sidebar or migration note, if such a note is included.
  • SC-5: New § Install Model (v2) section exists and explains the install-time output (skill manifest shape) and runtime data flow through @pleaseai/ask.
  • SC-6: PR description includes a short rationale paragraph explaining why the pivot was made (cost / maintenance tradeoff: live conversion is expensive; pre-builds drift; delegating to ask lets the plugin focus on detection/resolution and reuse a generic doc-fetching primitive). This is for reviewer context, not for inclusion in ARCHITECTURE.md itself.

Constraints

  • Docs-only: zero changes outside ARCHITECTURE.md and (optionally) cross-references in README.md if they describe install behavior in incompatible terms. Code, configs, manifests, and tests are untouched.
  • Preserve existing heading anchors unless a heading is being explicitly removed. Renaming a kept heading would break external references with no commensurate gain.

Track: arch-md-v2-20260428
Type: chore (docs)
Phase: planning (PR for team review)
Sibling tracks: plugin-scaffold-20260428 (#3), build-file-detect-20260428 (#4)
Merge order: independent — no overlap with sibling tracks
See full spec: .please/docs/tracks/active/arch-md-v2-20260428/spec.md
See plan: .please/docs/tracks/active/arch-md-v2-20260428/plan.md

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:proposalProposal for discussiontype:docsDocumentation improvements

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions