Discover Implicit Architecture
Explore an existing codebase to discover implicit architectural decisions and specification-worthy subsystems. Produces a suggestion report -- does NOT create any files.
Process
Resolve artifact paths: Follow the Artifact Path Resolution pattern from references/shared-patterns.md to determine the ADR and spec directories. If $ARGUMENTS contains --module <name>, resolve paths relative to that module; otherwise, in a workspace, aggregate across all modules. The resolved ADR directory is {adr-dir} and spec directory is {spec-dir}.
Parse the scope: Extract the optional scope from $ARGUMENTS.
- A directory path:
src/auth/ -- limit analysis to that subtree
- A domain keyword:
auth, api, data -- limit by semantic relevance
- If
$ARGUMENTS is empty, analyze the entire project (or module if --module is set)
Validate the scope (if provided):
- For directory paths: verify the path exists. If not, report: "Scope not found:
{scope}. Provide a valid directory path or omit the scope to analyze the entire project."
Load existing design artifacts:
- Glob
{adr-dir}/ADR-*.md and read each file's title, context, and decision outcome
- Glob
{spec-dir}/*/spec.md and read each file's title and overview. Validate spec pairing per references/shared-patterns.md § "Spec Pairing Validation".
- Build an exclusion list of already-documented decisions and subsystems
- If neither directory exists, note that no existing artifacts were found (this is expected for first-time discovery)
Analyze the codebase across four categories. Use the Task tool to spawn parallel Explore agents for each category. Each agent should return a list of findings with evidence.
Agent 1 -- Dependency & Framework Analysis:
- Scan for project manifests (e.g.,
package.json, requirements.txt, pyproject.toml, Cargo.toml, Gemfile, pom.xml, build.gradle, composer.json, and other ecosystem-specific files).
- Read dependency lists and identify major framework/library choices
- Look for lock files to confirm actively used dependencies
- Identify technology choices that represent architectural decisions (e.g., "chose Next.js over Remix", "chose PostgreSQL over MongoDB", "chose REST over GraphQL")
Agent 2 -- Architectural Pattern Analysis:
- Examine code structure for API patterns (REST controllers, GraphQL resolvers, gRPC services)
- Look for data access patterns (ORM usage, repository pattern, direct queries)
- Identify authentication/authorization patterns (JWT, sessions, OAuth)
- Detect state management patterns (Redux, Context, Zustand, etc.)
- Look for messaging/event patterns (queues, pub/sub, event emitters)
- Identify error handling and logging patterns
Agent 3 -- Project Structure & Boundary Analysis:
- Examine top-level directory layout and module organization
- Identify subsystem boundaries (directories with cohesive responsibility)
- Look for monorepo patterns (workspaces, packages/)
- Identify API surface boundaries (routes, endpoints, public interfaces)
- Detect data model boundaries (schema files, migration directories, model definitions)
- Look for clear module interfaces that suggest spec-worthy subsystems
Agent 4 -- Configuration & Infrastructure Analysis:
- Scan for Docker/container configuration (Dockerfile, docker-compose.yml, .containerignore)
- Look for CI/CD configuration (.github/workflows/, .gitlab-ci.yml, Jenkinsfile)
- Check for infrastructure-as-code (Terraform, CloudFormation, Pulumi)
- Examine environment configuration (.env.example, config files)
- Identify deployment targets and hosting decisions
- Look for monitoring/observability configuration
Merge and deduplicate findings:
- Combine results from all four agents
- Group related findings (e.g., "chose Express" and "REST API pattern" both relate to the API layer)
- Remove findings that overlap with existing ADRs or specs from step 3
- For partial overlaps, note what the existing artifact covers and what remains undocumented
Assign confidence levels to each suggestion:
- High: Explicit evidence in declarations or configuration (e.g., dependency in package.json, Dockerfile present)
- Medium: Inferred from consistent code patterns across multiple files (e.g., repository pattern used in 5+ files)
- Low: Inferred from limited evidence or indirect signals (e.g., a single config value suggesting a deployment target)
Classify suggestions into two categories:
- Suggested ADRs: Implicit decisions where an alternative existed (technology choices, pattern choices, architectural trade-offs)
- Suggested Specs: Subsystem boundaries with enough complexity to warrant formal specification (3+ files, clear interface, distinct responsibility)
Produce the discovery report using the output format below.
Output Format
## Discovery Report
Analyzed {scope or "entire project"}: {N} files across {M} directories.
Found {X} suggested ADRs and {Y} suggested specs.
Existing artifacts: {A} ADRs, {B} specs (excluded from suggestions).
### Suggested ADRs
| # | Confidence | Decision | Evidence | Command |
|---|------------|----------|----------|---------|
| 1 | High | {short decision title} | {key evidence: files, deps, config} | `/design:adr {description}` |
| 2 | Medium | {short decision title} | {key evidence} | `/design:adr {description}` |
{For each suggestion, add a brief paragraph below the table:}
**1. {Decision title}**
{2-3 sentences explaining what was found, what the implicit decision is, and what alternatives likely existed.}
Evidence: `{file1}`, `{file2}`, `{config entry}`
### Suggested Specs
| # | Confidence | Subsystem | Boundary | Command |
|---|------------|-----------|----------|---------|
| 1 | High | {subsystem name} | {files/dirs that define it} | `/design:spec {capability}` |
| 2 | Medium | {subsystem name} | {files/dirs} | `/design:spec {capability}` |
{For each suggestion, add a brief paragraph below the table:}
**1. {Subsystem name}**
{2-3 sentences explaining the subsystem's responsibility, its boundaries, and why it warrants a formal spec.}
Boundary: `{dir1}/`, `{dir2}/`, `{key files}`
### Already Documented
{List existing ADRs and specs that cover areas found in the codebase, confirming they are accounted for. Omit this section if no existing artifacts.}
- ADR-XXXX: {title} -- covers {what area}
- SPEC-XXXX: {title} -- covers {what area}
### Next Steps
Pick the suggestions you want to formalize:
{For each high-confidence suggestion, repeat the command:}
/design:adr {description}
/design:spec {capability}
Or prime your session with existing context first: `/design:prime`
Empty Results
If no suggestions are found:
## Discovery Report
Analyzed {scope or "entire project"}: {N} files across {M} directories.
No implicit architectural decisions or spec-worthy subsystems were identified.
This may indicate:
- The project is very small or early-stage
- The codebase uses highly conventional patterns that don't require explicit documentation
- A narrower scope might reveal more specific patterns: `/design:discover src/`
### Next Steps
- Create your first ADR manually: `/design:adr [description]`
- Create your first spec manually: `/design:spec [capability]`
Rules
- This skill is READ-ONLY -- it MUST NOT create, modify, or delete any files
- This skill is always single-agent at the top level, but MUST use Task tool to spawn parallel Explore agents for the four analysis categories
- Every suggestion MUST cite specific evidence from the codebase -- file paths, dependency declarations, configuration entries, or code patterns
- Suggestions MUST NOT be based on speculation or assumptions about code that was not read
- MUST read existing ADRs and specs before producing suggestions to avoid duplicating already-documented decisions
- MUST include a confidence level (High, Medium, Low) for every suggestion
- MUST include a ready-to-use
/design:adr or /design:spec command for every suggestion
- The Command column MUST contain a complete, copy-paste-ready command with a descriptive argument
- Sort suggestions by confidence (High first, then Medium, then Low) within each section
- If the scope argument points to a nonexistent path, report the error and stop -- do NOT fall back to full-project analysis
- Do NOT suggest ADRs for trivial decisions (e.g., "chose npm over yarn" when only one package manager file exists with no evidence of evaluation)
- Do NOT suggest specs for directories with fewer than 3 files unless they represent a critical subsystem boundary
- Keep the report concise -- prefer fewer high-quality suggestions over many low-confidence ones
- Use
## for the top-level heading and ### for sections within the report
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: discover-33description: Discover implicit architectural decisions and spec-worthy subsystems in an existing codebase. Use when the user says "discover architecture", "what decisions exist in this code", "bootstrap ADRs", or wants to reverse-engineer design artifacts from code. Use when this capability is needed.4---56# Discover Implicit Architecture78Explore an existing codebase to discover implicit architectural decisions and specification-worthy subsystems. Produces a suggestion report -- does NOT create any files.910## Process1112<!-- Governing: ADR-0016 (Workspace Mode), SPEC-0014 REQ "Artifact Path Resolution" -->13140. **Resolve artifact paths**: Follow the **Artifact Path Resolution** pattern from `references/shared-patterns.md` to determine the ADR and spec directories. If `$ARGUMENTS` contains `--module <name>`, resolve paths relative to that module; otherwise, in a workspace, aggregate across all modules. The resolved ADR directory is `{adr-dir}` and spec directory is `{spec-dir}`.15161. **Parse the scope**: Extract the optional scope from `$ARGUMENTS`.17 - A directory path: `src/auth/` -- limit analysis to that subtree18 - A domain keyword: `auth`, `api`, `data` -- limit by semantic relevance19 - If `$ARGUMENTS` is empty, analyze the entire project (or module if `--module` is set)20212. **Validate the scope** (if provided):22 - For directory paths: verify the path exists. If not, report: "Scope not found: `{scope}`. Provide a valid directory path or omit the scope to analyze the entire project."23243. **Load existing design artifacts**:25 - Glob `{adr-dir}/ADR-*.md` and read each file's title, context, and decision outcome26 - Glob `{spec-dir}/*/spec.md` and read each file's title and overview. Validate spec pairing per `references/shared-patterns.md` § "Spec Pairing Validation".27 - Build an exclusion list of already-documented decisions and subsystems28 - If neither directory exists, note that no existing artifacts were found (this is expected for first-time discovery)29304. **Analyze the codebase** across four categories. Use the Task tool to spawn parallel Explore agents for each category. Each agent should return a list of findings with evidence.3132 **Agent 1 -- Dependency & Framework Analysis**:33 - Scan for project manifests (e.g., `package.json`, `requirements.txt`, `pyproject.toml`, `Cargo.toml`, `Gemfile`, `pom.xml`, `build.gradle`, `composer.json`, and other ecosystem-specific files).34 - Read dependency lists and identify major framework/library choices35 - Look for lock files to confirm actively used dependencies36 - Identify technology choices that represent architectural decisions (e.g., "chose Next.js over Remix", "chose PostgreSQL over MongoDB", "chose REST over GraphQL")3738 **Agent 2 -- Architectural Pattern Analysis**:39 - Examine code structure for API patterns (REST controllers, GraphQL resolvers, gRPC services)40 - Look for data access patterns (ORM usage, repository pattern, direct queries)41 - Identify authentication/authorization patterns (JWT, sessions, OAuth)42 - Detect state management patterns (Redux, Context, Zustand, etc.)43 - Look for messaging/event patterns (queues, pub/sub, event emitters)44 - Identify error handling and logging patterns4546 **Agent 3 -- Project Structure & Boundary Analysis**:47 - Examine top-level directory layout and module organization48 - Identify subsystem boundaries (directories with cohesive responsibility)49 - Look for monorepo patterns (workspaces, packages/)50 - Identify API surface boundaries (routes, endpoints, public interfaces)51 - Detect data model boundaries (schema files, migration directories, model definitions)52 - Look for clear module interfaces that suggest spec-worthy subsystems5354 **Agent 4 -- Configuration & Infrastructure Analysis**:55 - Scan for Docker/container configuration (Dockerfile, docker-compose.yml, .containerignore)56 - Look for CI/CD configuration (.github/workflows/, .gitlab-ci.yml, Jenkinsfile)57 - Check for infrastructure-as-code (Terraform, CloudFormation, Pulumi)58 - Examine environment configuration (.env.example, config files)59 - Identify deployment targets and hosting decisions60 - Look for monitoring/observability configuration61625. **Merge and deduplicate findings**:63 - Combine results from all four agents64 - Group related findings (e.g., "chose Express" and "REST API pattern" both relate to the API layer)65 - Remove findings that overlap with existing ADRs or specs from step 366 - For partial overlaps, note what the existing artifact covers and what remains undocumented67686. **Assign confidence levels** to each suggestion:69 - **High**: Explicit evidence in declarations or configuration (e.g., dependency in package.json, Dockerfile present)70 - **Medium**: Inferred from consistent code patterns across multiple files (e.g., repository pattern used in 5+ files)71 - **Low**: Inferred from limited evidence or indirect signals (e.g., a single config value suggesting a deployment target)72737. **Classify suggestions** into two categories:74 - **Suggested ADRs**: Implicit decisions where an alternative existed (technology choices, pattern choices, architectural trade-offs)75 - **Suggested Specs**: Subsystem boundaries with enough complexity to warrant formal specification (3+ files, clear interface, distinct responsibility)76778. **Produce the discovery report** using the output format below.7879## Output Format8081```82## Discovery Report8384Analyzed {scope or "entire project"}: {N} files across {M} directories.85Found {X} suggested ADRs and {Y} suggested specs.86Existing artifacts: {A} ADRs, {B} specs (excluded from suggestions).8788### Suggested ADRs8990| # | Confidence | Decision | Evidence | Command |91|---|------------|----------|----------|---------|92| 1 | High | {short decision title} | {key evidence: files, deps, config} | `/design:adr {description}` |93| 2 | Medium | {short decision title} | {key evidence} | `/design:adr {description}` |9495{For each suggestion, add a brief paragraph below the table:}9697**1. {Decision title}**98{2-3 sentences explaining what was found, what the implicit decision is, and what alternatives likely existed.}99Evidence: `{file1}`, `{file2}`, `{config entry}`100101### Suggested Specs102103| # | Confidence | Subsystem | Boundary | Command |104|---|------------|-----------|----------|---------|105| 1 | High | {subsystem name} | {files/dirs that define it} | `/design:spec {capability}` |106| 2 | Medium | {subsystem name} | {files/dirs} | `/design:spec {capability}` |107108{For each suggestion, add a brief paragraph below the table:}109110**1. {Subsystem name}**111{2-3 sentences explaining the subsystem's responsibility, its boundaries, and why it warrants a formal spec.}112Boundary: `{dir1}/`, `{dir2}/`, `{key files}`113114### Already Documented115116{List existing ADRs and specs that cover areas found in the codebase, confirming they are accounted for. Omit this section if no existing artifacts.}117118- ADR-XXXX: {title} -- covers {what area}119- SPEC-XXXX: {title} -- covers {what area}120121### Next Steps122123Pick the suggestions you want to formalize:124125{For each high-confidence suggestion, repeat the command:}126```127/design:adr {description}128/design:spec {capability}129```130131Or prime your session with existing context first: `/design:prime`132```133134### Empty Results135136If no suggestions are found:137138```139## Discovery Report140141Analyzed {scope or "entire project"}: {N} files across {M} directories.142No implicit architectural decisions or spec-worthy subsystems were identified.143144This may indicate:145- The project is very small or early-stage146- The codebase uses highly conventional patterns that don't require explicit documentation147- A narrower scope might reveal more specific patterns: `/design:discover src/`148149### Next Steps150- Create your first ADR manually: `/design:adr [description]`151- Create your first spec manually: `/design:spec [capability]`152```153154## Rules155156- This skill is READ-ONLY -- it MUST NOT create, modify, or delete any files157- This skill is always single-agent at the top level, but MUST use Task tool to spawn parallel Explore agents for the four analysis categories158- Every suggestion MUST cite specific evidence from the codebase -- file paths, dependency declarations, configuration entries, or code patterns159- Suggestions MUST NOT be based on speculation or assumptions about code that was not read160- MUST read existing ADRs and specs before producing suggestions to avoid duplicating already-documented decisions161- MUST include a confidence level (High, Medium, Low) for every suggestion162- MUST include a ready-to-use `/design:adr` or `/design:spec` command for every suggestion163- The Command column MUST contain a complete, copy-paste-ready command with a descriptive argument164- Sort suggestions by confidence (High first, then Medium, then Low) within each section165- If the scope argument points to a nonexistent path, report the error and stop -- do NOT fall back to full-project analysis166- Do NOT suggest ADRs for trivial decisions (e.g., "chose npm over yarn" when only one package manager file exists with no evidence of evaluation)167- Do NOT suggest specs for directories with fewer than 3 files unless they represent a critical subsystem boundary168- Keep the report concise -- prefer fewer high-quality suggestions over many low-confidence ones169- Use `##` for the top-level heading and `###` for sections within the report170171---172> Converted and distributed by [TomeVault](https://tomevault.io/claim/joestump) — claim your Tome and manage your conversions.173<!-- tomevault:4.0:skill_md:2026-04-14 -->