Skip to content

Epic: cross-repo architecture landscape #3801

Description

@kyle-sexton

Brief

TLDR

A new skill in the architecture plugin that maps a fleet of repositories into a C4 System Landscape plus an application-portfolio table (with a thin setup skill owning the consumer's architecture declaration), and a six-dimension completeness check folded into the design-handoff gate as advisory coverage reporting. No enterprise-architecture framework is shipped as a skill.

Goal

Answer "what systems do we have, who owns them, what do they run on, and how do they relate" from the repositories themselves, and give the design-handoff gate a cheap completeness lens over the six dimensions (what, how, where, who, when, why) without importing a framework.

Constraints

  • Skill content is organization-agnostic: no publisher or organization names in the skill body.
  • Repository discovery: the argument selects the mode. An explicit repository list bypasses discovery; a scan root triggers it, through the repo-fleet-hygiene canonical-repo discovery when that plugin is installed (presence-gated) and through a bundled walk otherwise. The collaborator's discovery is scoped, not argument-free, so a run with neither argument stops.
  • Output lands in the consumer's declared architecture home, not a location this plugin picks. The declaration is a convention doc at the consumer's convention home (<home>/architecture/README.md, keys architecture_dir, landscape_dialect) converged by architecture:setup apply (pointer region and topic doc, as the pilot setup does); with nothing declared or confirmed, map-landscape stops rather than defaulting the location.
  • The completeness check is advisory: it reports coverage and never blocks the gate on its own.
  • No TOGAF or Zachman framework prose ships in either deliverable.

Acceptance criteria

  • A map-landscape skill exists in the architecture plugin, discovers repositories from an explicit list argument, and uses the fleet-hygiene discovery when that plugin is present and a scan root is given.
  • The skill emits a C4 System Landscape view plus a portfolio table carrying owner, target framework, runtime, dependencies, and last-touched date for each discovered repository.
  • An architecture:setup skill reports the declaration state (check) and converges the pointer region and topic doc idempotently (apply), per the fleet setup contract.
  • The design-handoff gate reports coverage of what, how, where, who, when, and why across resolved and directional design threads as an advisory table, and no coverage gap causes the gate to fail.

Captured assumptions

  • The facts in the portfolio table (owner, framework, runtime, dependencies, last touched) are derivable from repository contents and metadata without a separate registry. Qualified: owner degrades CODEOWNERS → remote owner → unknown and is never guessed from commit authors; last touched is the local HEAD date (nothing fetches).
  • Structurizr DSL and mermaid are both acceptable landscape dialects; the consumer's convention picks. Qualified: Structurizr has a native systemLandscape view; mermaid has no landscape diagram type, so the landscape renders as a C4Context with no focal system, and mermaid marks its C4 syntax experimental (verified 2026-09-06; recheck when a mermaid release adds a landscape type or drops the notice).

Out-of-scope

  • Baseline-versus-target gap analysis. There is no written target architecture to compare against yet.
  • TOGAF ADM guidance, the Zachman grid as a standalone skill, capability maps, and work-breakdown structures.
  • A standalone design-document skill.
  • Container-level or component-level C4 views.
  • Any write to a consumer's root instruction file outside the marked convention-home region.

Deferred questions

  • C3: baseline-versus-target gap analysis, blocked until a written target architecture exists to compare the discovered landscape against.
  • Whether repo-fleet-hygiene should publish a discovery-only mode or a documented plan-JSON schema for consumers (today the seam is --plan-file plus a schema_version check with a bundled fallback, and a discovery-only use pays for a full audit that collects GitHub evidence).
  • Whether /planning:design should prompt for the six dimensions at design time, upstream of the gate.

Execution shape: per-item PRs

Amendment note (2026-09-06, planning slice #3807)

Body amended from the verified plan (docs/topics/cross-repo-landscape/PLAN.md, branch plan/3807-cross-repo-landscape, contract-tier, never merges): criterion 1 gains "and a scan root is given" because the fleet-hygiene discovery stops without a scope; the discovery constraint now says the argument selects the mode (an explicit list bypasses discovery outright); a third criterion covers the architecture:setup skill the plugin philosophy requires once a consumer configuration surface exists; the design-handoff criterion widens "resolved" to "resolved and directional"; the architecture-home constraint names the declaration mechanism this lane creates (none existed) and the no-silent-default rule; both captured assumptions are qualified; "six-interrogative" wording replaced by "six-dimension" so the framework vocabulary the constraints forbid does not appear in the Brief either.

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

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: needs-triageDefault until a priority tier is assigned.work-mapDecision map container for /planning:wayfind; sub-issues are its typed decision items.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions