Best for
- New projects: Starting system architecture from scratch
- Major changes: Significant architectural shifts requiring new decisions
- Documentation: Capturing verbal decisions as formal ADRs
tikalk/adlc-team-skills/skills/architect/architect-specify/SKILL.md
Interactive PRD exploration and system-level ADR creation for greenfield projects. Use when transforming a PRD or high-level system description into Architecture Decision Records.
Decision brief
Interactive PRD exploration and system-level ADR creation for greenfield projects.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/tikalk/adlc-team-skills --skill "skills/architect/architect-specify"Inspect the Agent Skill "architect-specify" from https://github.com/tikalk/adlc-team-skills/blob/a6ea2fd3d9cf46c5cba9ff384e1099ce62481b8b/skills/architect/architect-specify/SKILL.md at commit a6ea2fd3d9cf46c5cba9ff384e1099ce62481b8b. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
You MUST consider the user input before proceeding (if not empty).
Objective: Decompose large PRD into manageable sub-systems automatically
Objective: Extract architectural drivers from the PRD
Objective: Explore solution options through guided discussion
Objective: Convert exploration outcomes into formal ADRs
Permission review
The documentation asks the agent to create, modify, or delete local files.
*Output**: Internal summary of architectural drivers (do not write to file yet)The documentation asks the agent to create, modify, or delete local files.
*Objective**: Write finalized ADRs to fileThe documentation asks the agent to run terminal commands or scripts.
**Run Setup Script**:Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 88/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 97 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Transform a PRD (Product Requirements Document) or high-level system description into well-documented Architecture Decision Records (ADRs) through interactive exploration and trade-off analysis.
Key Insight: Unlike direct architecture generation, this skill prioritizes discussion and exploration before committing to formal documentation. The goal is to surface trade-offs, validate assumptions, and make informed decisions collaboratively.
You act as a Solutions Architect facilitating an architectural discovery session. Your role involves:
When NOT to use:
/architect-init instead to reverse-engineer from code/architect-clarify for ADR refinements$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Examples of User Input:
"B2B SaaS platform for supply chain management with real-time inventory tracking""Mobile-first e-commerce app with offline support and social features""Legacy system modernization: migrate from monolith to microservices""IoT platform for smart home devices with edge computing requirements"When users provide PRD context like this, use it to drive the architectural exploration conversation.
--views VIEWS: Architecture views to include in final AD.md
core (default): Context, Functional, Information, Development, Deploymentall: All 7 views including Concurrency and Operationalconcurrency,operational)--adr-heuristic HEURISTIC: ADR generation strategy
surprising (default): Skip obvious ecosystem defaultsall: Document all decisions discussedminimal: Only high-risk/unconventional decisions--no-decompose: Disable automatic sub-system decomposition (default: auto-decompose if multiple domains detected)
You are acting as a Solutions Architect facilitating an architectural discovery session. Your role involves:
When creating ADRs, consider how they map to R&W viewpoints:
| ADR Topic | Primary Viewpoint | Impact on Other Views |
|---|---|---|
| Architecture Style | Functional (cornerstone) | Shapes all other views |
| Database Choice | Information | Affects Functional, Deployment |
| API Style | Functional | Affects Information, Development |
| Auth Mechanism | Functional | Affects all views (security perspective) |
| Deployment Platform | Deployment | Affects Development, Operational |
| Communication Pattern | Functional, Concurrency | Affects Information, Deployment |
Functional-as-Cornerstone Principle:
"The Functional view is the cornerstone of most ADs... It usually drives the shape of other system structures." — Rozanski & Woods
During exploration, prioritize decisions that affect the Functional view:
These decisions drive all subsequent architectural views.
| Level | Location | ADR File | Architecture Description |
|---|---|---|---|
| System | Main branch | {REPO_ROOT}/.adlc/drafts/adr/ | {REPO_ROOT}/AD.md |
This command operates at the System level, creating ADRs in {REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.md.
IMPORTANT - Path Resolution:
REPO_ROOT - use this to determine the correct paths.adlc directory.adlc/drafts/adr.md - always use {REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.mdadr.md and the adr.md index after ADR writes.adlc may be in the parent directoryGiven the PRD input, execute this workflow:
{REPO_ROOT}/.adlc/memory/constitution.md for architectural constraints{REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.md with sub-system organizationNOTE: This is an interactive command. You will engage the user in conversation before finalizing ADRs.
Objective: Decompose large PRD into manageable sub-systems automatically
When: This phase runs automatically when the PRD is detected as having multiple distinct domains. Use --no-decompose to skip.
Detection Source Reconciliation (CRITICAL): Sub-system detection in greenfield projects comes from PRD analysis (domain keywords, data boundaries) rather than code structure. When analyzing the PRD:
Analyze the PRD for distinct business domains and functional areas:
| Domain Category | Typical Keywords |
|---|---|
| Authentication | login, auth, oauth, sso, permissions, roles, access control |
| User Management | profile, registration, preferences, settings, account |
| Payments | billing, checkout, subscription, invoicing, pricing |
| Orders | cart, checkout, order management, fulfillment |
| Inventory | stock, warehouse, products, catalog, sku |
| Notifications | email, sms, push, alerts, webhooks |
| Analytics | metrics, reporting, dashboards, data |
| Search | search, indexing, elasticsearch |
| Media | upload, images, video, cdn |
| Messaging | chat, realtime, websocket |
Identify boundaries between sub-systems based on:
Present detected sub-systems to user for confirmation:
## Detected Sub-Systems
I've identified the following sub-systems from your PRD:
| # | Sub-System | Key Domains | Rationale |
|---|------------|-------------|-----------|
| 1 | **Auth** | Authentication, Authorization | Core security boundary |
| 2 | **Users** | User Management, Profiles | User data ownership |
| 3 | **Payments** | Billing, Subscriptions | Financial domain |
| 4 | **Inventory** | Products, Stock | Physical goods management |
### Questions for Confirmation:
1. **Are these sub-systems correct?** [Y/n]
2. **Should any sub-systems be merged?** (e.g., Auth + Users)
3. **Should any sub-systems be split?** (e.g., Payments into Billing + Subscriptions)
4. **Any missing sub-systems?** (e.g., Analytics, Search)
**Reply** with:
- `Y` to confirm and proceed
- `n` to disable decomposition (generate monolithic ADRs)
- Specific changes (e.g., "merge 1+2", "split 3", "add Notifications")
CRITICAL: If you have identified ANY sub-systems through PRD analysis, you MUST execute this step.
Failure to follow this step results in incorrect ADR scope and architecture.
Based on user response:
| Response | Action |
|---|---|
Y / Enter | Proceed with detected sub-systems |
n | Skip decomposition, generate monolithic ADRs |
| Modifications | Adjust sub-systems, then proceed |
| Empty/Default | Auto-proceed if ≤3 sub-systems, ask if >3 |
Threshold Logic Enforcement (MANDATORY - applies to ALL detected sub-systems from PRD analysis):
| Sub-System Count | Required Action | Can Skip User Confirmation? |
|---|---|---|
| 0 | Proceed as monolithic (no decomposition) | Yes |
| 1-3 | Show summary, auto-approve allowed | Yes |
| 4-6 | MUST show summary and ask user confirmation | NO |
| >6 | MUST suggest grouping and MUST ask confirmation | NO |
Enforcement Rules:
After confirmation, output structured sub-system data:
{
"decomposition": "enabled",
"subsystems": [
{"id": "auth", "name": "Auth", "domains": ["Authentication", "Authorization"], "rationale": "Security boundary"},
{"id": "users", "name": "Users", "domains": ["User Management", "Profiles"], "rationale": "User data ownership"},
{"id": "payments", "name": "Payments", "domains": ["Billing", "Subscriptions"], "rationale": "Financial domain"}
],
"next_phase": "PRD Analysis (per sub-system)"
}
If decomposition disabled:
{
"decomposition": "disabled",
"reason": "user_requested",
"next_phase": "PRD Analysis (monolithic)"
}
Objective: Extract architectural drivers from the PRD
Note: If sub-system decomposition is enabled (Phase 0), repeat this analysis per sub-system to ensure focused, manageable ADRs.
Identify Functional Drivers:
Identify Quality Attribute Drivers:
Identify Constraints:
Load Constitution:
{REPO_ROOT}/.adlc/memory/constitution.md if it existsCheck Existing Documentation:
README.md for already-documented tech stackAGENTS.md for project contextscripts/bash/setup-architect.sh and look for TEAM_AGENTS_MD in output - if present, this file contains usage instructions for team-wide agent directivesCONTRIBUTING.md for dev guidelinesOutput: Internal summary of architectural drivers (do not write to file yet)
If decomposed: Generate separate analysis for each sub-system, noting cross-sub-system dependencies
Objective: Explore solution options through guided discussion
For each major architectural decision area, present options and facilitate discussion:
System Architecture Style
Data Architecture
Integration Architecture
Security Architecture
Deployment Architecture
For each decision area requiring user input, present:
## Architectural Decision: [Decision Area]
**Context**: [Why this decision matters based on PRD]
**Options Being Considered**:
| Option | Description | Trade-offs |
|--------|-------------|------------|
| A | [Option A] | Pros: [benefits] / Cons: [drawbacks] |
| B | [Option B] | Pros: [benefits] / Cons: [drawbacks] |
| C | [Option C] | Pros: [benefits] / Cons: [drawbacks] |
**Recommended**: Option [X] - [Reasoning based on PRD requirements]
**Questions for Clarification**:
1. [Question about constraints or preferences]
2. [Question about trade-off priorities]
Reply with your choice (A/B/C), or provide additional context.
Objective: Convert exploration outcomes into formal ADRs
CRITICAL: ADR status MUST be "Proposed" when generated by this command. NEVER set status to "Accepted" directly. Users must approve via
/architect-clarify.
Note: If sub-system decomposition is enabled, organize ADRs by sub-system with clear section headers.
After each decision is confirmed:
templates/adr-template.mdObjective: Identify which R&W perspectives apply to this system
Before completing ADRs, discuss quality requirements to help /architect-implement:
Core (Always Recommended):
Situational (Select Based on Requirements):
| Quality | Question | If Yes → Apply Perspective |
|---|---|---|
| Availability | Does the system need high uptime (>99%)? | Availability & Resilience |
| Evolution | Will the system need to change significantly over time? | Evolution |
| Regulation | Is the system subject to laws/regulations (GDPR, HIPAA)? | Regulation |
| Accessibility | Will users with disabilities use this system? | Accessibility |
| Internationalization | Will the system support multiple languages/regions? | Internationalization |
| Location | Are there geographic distribution concerns? | Location |
| Usability | Is ease of use a critical success factor? | Usability |
| Resources | Are there significant constraints on people/budget/time? | Development Resource |
Present to user:
## Quality Requirements
Based on your PRD, which quality properties are important for this system?
### Core (Always Recommended)
- [x] Security
- [x] Performance
### Situational
- [ ] Availability (high uptime requirement)
- [ ] Evolution (long-lived system)
- [ ] Regulation (GDPR, HIPAA, etc.)
- [ ] Other: ___________
Please indicate which apply (e.g., "Availability, Regulation").
Store selected perspectives in ADR metadata for /architect-implement:
<!-- Quality Requirements -->
<!-- perspectives: security, performance, availability, regulation -->
If decomposed, structure the ADR file as:
# Architecture Decision Records
## ADR Index
| ID | Sub-System | Decision | Status | Date | Owner |
|----|------------|----------|--------|------|-------|
| ADR-001 | System | Architecture Style | Proposed | 2026-02-26 | User/AI |
| ADR-002 | Auth | JWT Authentication | Proposed | 2026-02-26 | User/AI |
| ADR-003 | Payments | Stripe Integration | Proposed | 2026-02-26 | User/AI |
---
## System-Level ADRs
### ADR-001: [Decision Title]
[Full ADR content...]
---
## Auth Sub-System ADRs
### ADR-002: [Decision Title]
[Full ADR content...]
---
## Payments Sub-System ADRs
### ADR-003: [Decision Title]
[Full ADR content...]
Cross-Cutting ADRs: Some decisions affect multiple sub-systems (e.g., "Use PostgreSQL for all sub-systems"). Mark these as System-Level and note impact on each sub-system.
ADR Format (MADR 3.0.0 — see templates/adr-template.md):
---
status: proposed # proposed | accepted | rejected | deprecated | superseded by ADR-0123 | discovered
date: YYYY-MM-DD
decision-makers: [list everyone involved in the decision]
consulted: [list everyone whose opinions were sought]
informed: [list everyone kept up-to-date on progress]
sub-system: System # System | Auth | Payments | ...
superseded-by: ""
---
# {short title, representative of the solved problem and the found solution}
## Context and Problem Statement
[Problem statement and forces from exploration]
## Decision Drivers
* {decision driver 1}
* {decision driver 2}
## Considered Options
* {title option 1}
* {title option 2}
## Decision Outcome
Chosen option: "{title option 1}", because {justification}.
### Consequences
* Good, because {positive consequence}
* Bad, because {negative consequence / risk with mitigation}
### Confirmation
{How implementation of / compliance with this ADR will be confirmed}
## Pros and Cons of the Options
### {title option 1}
* Good, because {argument}
* Bad, because {argument}
## Constitution Alignment
| Principle | Alignment | Notes |
|-----------|-----------|-------|
## Related ADRs
* [ADR-XXX: {Related decision}](ADR-XXX.md)
## More Information
{Additional evidence, links, when/how to re-visit}
Objective: Write finalized ADRs to file
Run Setup Script:
scripts/bash/setup-architect.sh to ensure {REPO_ROOT}/.adlc/drafts/adr/ directory exists--no-decompose if decomposition was disabledWrite ADRs:
{REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.mdadr.md and adr.md index after writesReport Summary:
Summary Format:
## Sub-System Decomposition Summary
### Sub-Systems Identified: 3
| # | Sub-System | ADRs Created |
|---|------------|--------------|
| 1 | System-Level | ADR-001: Architecture Style |
| 2 | Auth | ADR-002: JWT Authentication, ADR-003: OAuth2 Integration |
| 3 | Payments | ADR-004: Stripe Integration, ADR-005: Payment Webhooks |
### Cross-Cutting Decisions
- ADR-001 affects all sub-systems
### Next Steps
1. Review ADRs with /architect-clarify
2. Generate AD.md with /architect-implement
/architect-initRecommended next steps:
/architect.clarify: Refine any ambiguous or incomplete ADRs/architect.implement: Generate full Architecture Description from ADRs/architect-specify to create new ADRs for additional decisions$ARGUMENTS
After specify completes, run /architect-clarify to refine and validate the ADRs.
scripts/bash/setup-architect.sh has been executed and {REPO_ROOT}/.adlc/drafts/adr/ exists.{REPO_ROOT}/.adlc/drafts/adr/ADR-{NNN}.md.Proposed.adr.md is auto-generated in {REPO_ROOT}/.adlc/drafts/adr/.adr.md index is auto-generated in {REPO_ROOT}/.adlc/drafts/adr/.