Skip to content

Commit 2d9f0d1

Browse files
committed
feat(architect): technology neutrality and view parity checks (v2.1.0)
1 parent bf8e02d commit 2d9f0d1

8 files changed

Lines changed: 145 additions & 21 deletions

File tree

FORK.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Use `agentic-sdlc-v<version>` with plus:
3939

4040
| Version | Date | Base Upstream | Changes |
4141
|---------|------|---------------|---------|
42+
| 0.8.12+adlc15 | 2026-05-20 | 0.8.12 | Architect extension v2.1.0: Technology neutrality in Functional View, Functional-Development view parity, analyze Pass E.6/E.7 |
4243
| 0.8.12+adlc14 | 2026-05-19 | 0.8.12 | Product extension v1.5.6: In-section diagrams, remove Visual Summary, sections renumbered 1-12, delete visual templates, no .specify/product/visuals/ |
4344
| 0.8.12+adlc13 | 2026-05-19 | 0.8.12 | Product extension v1.5.5: PDR lifecycle enforcement - mandatory memory promotion, state schema lifecycle fields, 9-check final gate |
4445
| 0.8.12+adlc12 | 2026-05-19 | 0.8.12 | Product extension v1.5.4: Fix self-contained PRD enforcement - Step 3.3 structure, embedding rules, prd-template .specify/ references |

extensions/architect/CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
22

33
All notable changes to the Architect extension will be documented in this file.
44

5+
## [2.1.0] - 2026-05-20
6+
7+
### Added
8+
9+
- **Functional View template**: Technology Abstraction Rule and validation checklist
10+
- Added explicit instruction to use architectural roles (Database, Object Storage) not product names
11+
- Added forward cross-reference to Development View §3.5.2
12+
- Added 5-point validation checklist for technology neutrality
13+
- **Development View template**: Enhanced structure for technology mapping
14+
- Added §3.5.2 Technology Stack Mapping table (role → technology → ADR)
15+
- Added §3.5.3 Technology Architecture diagram with concrete technology labels
16+
- Added backward cross-reference to Functional View §3.2
17+
- Added 5-point validation checklist for view parity
18+
- **Analyze Pass E.6**: Technology Neutrality check
19+
- Scans Functional View for product/vendor names in elements and diagrams
20+
- Distinguishes architectural roles (acceptable) from product names (flagged)
21+
- Severity: MEDIUM (reported, not blocking)
22+
- **Analyze Pass E.7**: Functional-Development Mapping check
23+
- Verifies Technology Stack Mapping table exists in Development View
24+
- Checks that Functional View elements have corresponding mapping entries
25+
- Supports N:1 mappings (multiple elements → one technology)
26+
- Severity: MEDIUM if elements missing, LOW if table absent
27+
- **Config options**: `technology_neutrality` and `view_parity` toggles in `analysis:` section
28+
29+
### Changed
30+
31+
- Development View section renumbering:
32+
- §3.5.2 → §3.5.4 (Module Dependencies)
33+
- §3.5.3 → §3.5.5 (Build & CI/CD)
34+
- §3.5.4 → §3.5.6 (Development Standards)
35+
- Functional View template example: `[e.g., REST /auth/*]``[e.g., API /auth/*]` (technology-neutral)
36+
537
## [2.0.8] - 2026-05-17
638

739
### Fixed

extensions/architect/commands/analyze.md

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -235,21 +235,35 @@ For each ADR:
235235
- Consistent styling across diagrams
236236

237237
5. **View File Consistency** (DAG State Validation):
238-
- Check if `.specify/architect/state.json` exists and reports views as "completed"
239-
- Check if `.specify/architect/views/` directory exists
240-
- Verify that for each "completed" view in state.json, a corresponding file exists on disk
241-
- **Flag as HIGH severity if**:
242-
- state.json reports views "completed" but views/ directory is empty
243-
- View files exist but are under 20 lines (placeholder/skeleton content)
244-
- View files cannot be read (corrupted/missing permissions)
245-
- **Report format**:
246-
```
247-
DAG State Inconsistency Detected:
248-
- State reports: [N] views completed
249-
- Files on disk: [M] view files found
250-
- Missing files: [list of missing views]
251-
- Recommendation: Regenerate views or reset state.json
252-
```
238+
- Check if `.specify/architect/state.json` exists and reports views as "completed"
239+
- Check if `.specify/architect/views/` directory exists
240+
- Verify that for each "completed" view in state.json, a corresponding file exists on disk
241+
- **Flag as HIGH severity if**:
242+
- state.json reports views "completed" but views/ directory is empty
243+
- View files exist but are under 20 lines (placeholder/skeleton content)
244+
- View files cannot be read (corrupted/missing permissions)
245+
- **Report format**:
246+
```
247+
DAG State Inconsistency Detected:
248+
- State reports: [N] views completed
249+
- Files on disk: [M] view files found
250+
- Missing files: [list of missing views]
251+
- Recommendation: Regenerate views or reset state.json
252+
```
253+
254+
6. **Technology Neutrality** (Functional View):
255+
- Scan Functional View (§3.2) for product/vendor names in element descriptions and Mermaid diagrams
256+
- **Architectural roles** (acceptable): Database, Object Storage, Cache, Message Queue, AI Gateway, Workflow Runtime, App Shell, API Gateway, Authentication Service, etc.
257+
- **Product names** (flag as MEDIUM): PostgreSQL, Neon, Vercel, Next.js, Redis, MongoDB, AWS, Azure, S3, etc.
258+
- **Severity**: MEDIUM - Not blocking but indicates abstraction violation
259+
- **Note**: ADR Traceability sections may reference products (that's acceptable); only flag element descriptions and diagram labels
260+
261+
7. **Functional-Development Mapping**:
262+
- Verify Development View (§3.5) contains a Technology Stack Mapping table (§3.5.2)
263+
- Check that every element in Functional View's element table (§3.2.1) has at least one corresponding entry in the mapping table
264+
- N:1 mappings (multiple functional elements → one technology) are acceptable
265+
- **Severity**: MEDIUM if elements are missing; LOW if mapping table is absent
266+
- **Cross-check**: Technology Architecture diagram (§3.5.3) should mirror Functional View diagram (§3.2.2) structure
253267
254268
#### Pass F: Staleness Detection
255269

extensions/architect/config-template.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ analysis:
3232
# Severity thresholds for blocking
3333
block_on_critical: true
3434
block_on_high: false
35+
36+
# View consistency checks (Pass E)
37+
technology_neutrality: true # E.6: Check functional view uses architectural roles, not product names
38+
view_parity: true # E.7: Check functional elements map to development technologies

extensions/architect/extension.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ schema_version: "1.0"
33
extension:
44
id: "architect"
55
name: "Architect - ADR & Architecture Description"
6-
version: "2.0.8"
6+
version: "2.1.0"
77
description: "Create and manage Architecture Decision Records (ADRs) and Architecture Descriptions (AD.md) using Rozanski & Woods Viewpoints and Perspectives methodology"
88
author: "Agentic SDLC Team"
99
repository: "https://github.com/tikalk/agentic-sdlc-spec-kit"

extensions/architect/templates/views/development.md

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
**Purpose**: Constraints for developers - code organization, dependencies, CI/CD
1313

14+
> This view maps Functional View §3.2 architectural roles to specific technologies. See §3.5.2 for the technology stack mapping.
15+
1416
### 3.5.1 Code Organization
1517

1618
```text
@@ -27,7 +29,50 @@ project-root/
2729
└── infra/ # Infrastructure as code
2830
```
2931

30-
### 3.5.2 Module Dependencies
32+
### 3.5.2 Technology Stack Mapping
33+
34+
Maps Functional View (§3.2) architectural roles to concrete technology choices.
35+
36+
| Functional Role | Technology Choice | Version/Variant | ADR Reference |
37+
|-----------------|-------------------|-----------------|---------------|
38+
| App Shell | [e.g., Next.js 14] | [e.g., App Router] | [ADR-XXX] |
39+
| Database | [e.g., Neon PostgreSQL] | [e.g., Serverless] | [ADR-XXX] |
40+
| Object Storage | [e.g., Vercel Blob] | | [ADR-XXX] |
41+
| AI Gateway | [e.g., Vercel AI Gateway] | | [ADR-XXX] |
42+
| Workflow Runtime | [e.g., Vercel Workflow] | | [ADR-XXX] |
43+
44+
**Mapping Rules:**
45+
- N:1 mappings allowed (multiple functional elements → one technology)
46+
- Every technology choice MUST reference a supporting ADR
47+
- Generic roles (Database) map to specific products (Neon PostgreSQL)
48+
49+
### 3.5.3 Technology Architecture
50+
51+
Concrete instantiation of Functional View §3.2.2 element interactions using specific technologies.
52+
53+
```mermaid
54+
graph TD
55+
%% Technology-specific labels mapped from Functional View
56+
AppImpl["[Technology]<br/>[Variant]"]:::implNode
57+
DBImpl["[Technology]<br/>[Variant]"]:::implNode
58+
StorageImpl["[Technology]<br/>[Variant]"]:::implNode
59+
AIGWImpl["[Technology]<br/>[Variant]"]:::implNode
60+
WorkflowImpl["[Technology]<br/>[Variant]"]:::implNode
61+
62+
AppImpl -->|ORM/Client| DBImpl
63+
AppImpl -->|SDK| StorageImpl
64+
AppImpl -->|API Routes| AIGWImpl
65+
AppImpl -->|Triggers| WorkflowImpl
66+
67+
classDef implNode fill:#e67e22,stroke:#333,stroke-width:2px,color:#fff
68+
```
69+
70+
**Diagram Guidelines:**
71+
- Mirror the structure of Functional View §3.2.2
72+
- Replace generic labels with concrete technology names
73+
- Include connection mechanisms (SDK, ORM, API, etc.)
74+
75+
### 3.5.4 Module Dependencies
3176

3277
**Dependency Rules:**
3378

@@ -48,13 +93,13 @@ graph LR
4893
class API,SVC,REPO layer
4994
```
5095

51-
### 3.5.3 Build & CI/CD
96+
### 3.5.5 Build & CI/CD
5297

5398
- **Build System**: [e.g., npm, gradle, cargo]
5499
- **CI Pipeline**: [Key stages]
55100
- **Deployment Strategy**: [e.g., Blue-green, rolling]
56101

57-
### 3.5.4 Development Standards
102+
### 3.5.6 Development Standards
58103

59104
- **Coding Standards**: [e.g., ESLint config, PEP 8]
60105
- **Review Requirements**: [e.g., 2 approvals]
@@ -96,6 +141,18 @@ _Source ADRs: [ADR-XXX]_
96141

97142
---
98143

144+
## Validation Checklist
145+
146+
Before finalizing this view, verify:
147+
148+
- [ ] **Technology Mapping**: Every Functional View §3.2 element has a corresponding entry in §3.5.2 (N:1 mappings acceptable)
149+
- [ ] **ADR References**: Every technology choice in §3.5.2 references a supporting ADR
150+
- [ ] **Diagram Parity**: Technology Architecture diagram (§3.5.3) mirrors Functional View diagram structure
151+
- [ ] **Code Alignment**: Code organization reflects the technology stack choices
152+
- [ ] **Dependency Rules**: Module dependencies are consistent with technology constraints
153+
154+
---
155+
99156
**ADR Traceability:**
100157

101158
| ADR | Decision | Impact on Development View |

extensions/architect/templates/views/functional.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@
1111

1212
**Purpose**: Describe functional elements, their responsibilities, and interactions
1313

14+
> **Technology Abstraction Rule**: Elements must be described by **architectural role** (Database, Object Storage, Cache, Message Queue, AI Gateway, Workflow Runtime, App Shell, etc.) — never by product name. This view captures *what* the system does, not *how* it's implemented.
15+
>
16+
> See Development View §3.5.2 for concrete technology choices mapped to these elements.
17+
1418
### 3.2.1 Functional Elements
1519

1620
| Element | Responsibility | Interfaces Provided | Dependencies |
1721
|---------|----------------|---------------------|--------------|
18-
| [COMPONENT_1] | [e.g., User authentication] | [e.g., REST /auth/*] | [e.g., Database] |
22+
| [COMPONENT_1] | [e.g., User authentication] | [e.g., API /auth/*] | [e.g., Database] |
1923
| [COMPONENT_2] | [Responsibility] | [Interfaces] | [Dependencies] |
2024

2125
### 3.2.2 Element Interactions
@@ -87,6 +91,18 @@ _Source ADRs: [ADR-XXX]_
8791

8892
---
8993

94+
## Validation Checklist
95+
96+
Before finalizing this view, verify:
97+
98+
- [ ] **Technology Neutrality**: All elements described by architectural role, not product name (Database, not PostgreSQL; Object Storage, not S3)
99+
- [ ] **Diagram Consistency**: Mermaid diagram nodes use generic labels matching the element table
100+
- [ ] **Interface Abstraction**: Interfaces describe capabilities, not implementation protocols
101+
- [ ] **Complete Coverage**: Every major functional responsibility is represented
102+
- [ ] **Clear Boundaries**: "What system DOES" and "does NOT do" are clearly articulated
103+
104+
---
105+
90106
**ADR Traceability:**
91107

92108
| ADR | Decision | Impact on Functional View |

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "agentic-sdlc-specify-cli"
3-
version = "0.8.12+adlc14"
3+
version = "0.8.12+adlc15"
44
description = "Specify CLI (tikalk fork). Agentic SDLC toolkit for Spec-Driven Development with pre-installed extensions and AI integrations."
55
requires-python = ">=3.11"
66
dependencies = [

0 commit comments

Comments
 (0)