specky-sdd 3.2.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +126 -111
- package/SECURITY.md +4 -4
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/templates/analysis.md +55 -0
- package/dist/templates/templates/api-docs.md +40 -0
- package/dist/templates/templates/bugfix.md +46 -0
- package/dist/templates/templates/checklist.md +29 -0
- package/dist/templates/templates/compliance.md +28 -0
- package/dist/templates/templates/constitution.md +57 -0
- package/dist/templates/templates/cross-analysis.md +46 -0
- package/dist/templates/templates/data-model.md +35 -0
- package/dist/templates/templates/design.md +104 -0
- package/dist/templates/templates/devcontainer.md +36 -0
- package/dist/templates/templates/dockerfile.md +34 -0
- package/dist/templates/templates/journey.md +73 -0
- package/dist/templates/templates/onboarding.md +49 -0
- package/dist/templates/templates/research.md +39 -0
- package/dist/templates/templates/runbook.md +40 -0
- package/dist/templates/templates/specification.md +50 -0
- package/dist/templates/templates/sync-report.md +44 -0
- package/dist/templates/templates/tasks.md +39 -0
- package/dist/templates/templates/terraform.md +38 -0
- package/dist/templates/templates/test-stub.md +34 -0
- package/dist/templates/templates/user-stories.md +39 -0
- package/dist/templates/templates/verification.md +33 -0
- package/dist/templates/templates/work-items.md +27 -0
- package/package.json +1 -1
- package/media/specky-icon-128.png +0 -0
- package/media/specky-icon-256.png +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# Operational Runbook: {{title}}
|
|
3
|
+
|
|
4
|
+
**Feature**: {{feature_id}}
|
|
5
|
+
**Date**: {{date}}
|
|
6
|
+
**Version**: {{version}}
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Deployment
|
|
11
|
+
|
|
12
|
+
{{deployment_steps}}
|
|
13
|
+
|
|
14
|
+
## Health Checks
|
|
15
|
+
|
|
16
|
+
| Endpoint | Expected | Interval |
|
|
17
|
+
|----------|----------|----------|
|
|
18
|
+
{{#each health_checks}}
|
|
19
|
+
| {{endpoint}} | {{expected}} | {{interval}} |
|
|
20
|
+
{{/each}}
|
|
21
|
+
|
|
22
|
+
## Monitoring & Alerts
|
|
23
|
+
|
|
24
|
+
{{monitoring}}
|
|
25
|
+
|
|
26
|
+
## Troubleshooting
|
|
27
|
+
|
|
28
|
+
| Symptom | Cause | Resolution |
|
|
29
|
+
|---------|-------|-----------|
|
|
30
|
+
{{#each troubleshooting}}
|
|
31
|
+
| {{symptom}} | {{cause}} | {{resolution}} |
|
|
32
|
+
{{/each}}
|
|
33
|
+
|
|
34
|
+
## Rollback Procedure
|
|
35
|
+
|
|
36
|
+
{{rollback}}
|
|
37
|
+
|
|
38
|
+
## Contacts
|
|
39
|
+
|
|
40
|
+
{{contacts}}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# {{project_name}} — Specification
|
|
3
|
+
|
|
4
|
+
> All requirements use **EARS notation** (Easy Approach to Requirements Syntax). Each requirement is testable, unambiguous, and traceable to the Constitution's success criteria.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Table of Contents
|
|
9
|
+
|
|
10
|
+
- [1. Core Requirements](#1-core-requirements)
|
|
11
|
+
- [2. Functional Requirements](#2-functional-requirements)
|
|
12
|
+
- [3. Non-Functional Requirements](#3-non-functional-requirements)
|
|
13
|
+
- [Acceptance Criteria Summary](#acceptance-criteria-summary)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. Core Requirements
|
|
18
|
+
|
|
19
|
+
{{requirements_core}}
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Functional Requirements
|
|
24
|
+
|
|
25
|
+
{{requirements_functional}}
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 3. Non-Functional Requirements
|
|
30
|
+
|
|
31
|
+
{{requirements_nonfunctional}}
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Acceptance Criteria Summary
|
|
36
|
+
|
|
37
|
+
| ID | Requirement | Test Method |
|
|
38
|
+
|----|-------------|-------------|
|
|
39
|
+
{{acceptance_criteria_table}}
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Self-Assessment
|
|
44
|
+
|
|
45
|
+
| Criterion | Score | Notes |
|
|
46
|
+
|-----------|-------|-------|
|
|
47
|
+
| EARS notation compliance | {{ears_compliance}} | |
|
|
48
|
+
| Testability | {{testability_score}} | Every requirement has acceptance criteria |
|
|
49
|
+
| Traceability | {{traceability_score}} | Every requirement traces to Constitution |
|
|
50
|
+
| Uniqueness of IDs | {{uniqueness_score}} | No duplicate requirement IDs |
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# Sync Report: {{project_name}}
|
|
3
|
+
|
|
4
|
+
> Drift analysis between specification and implementation.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Summary
|
|
9
|
+
|
|
10
|
+
- **In Sync:** {{in_sync}}
|
|
11
|
+
- **Last Checked:** {{last_checked}}
|
|
12
|
+
- **Drift Items:** {{drift_count}}
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Requirements Coverage
|
|
17
|
+
|
|
18
|
+
| Requirement | Implementation | Status |
|
|
19
|
+
|-------------|---------------|--------|
|
|
20
|
+
{{coverage_table}}
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Drift Items
|
|
25
|
+
|
|
26
|
+
{{#each drift_items}}
|
|
27
|
+
- {{this}}
|
|
28
|
+
{{/each}}
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Orphan Code
|
|
33
|
+
|
|
34
|
+
Files not traced to any requirement:
|
|
35
|
+
|
|
36
|
+
{{#each orphan_files}}
|
|
37
|
+
- {{this}}
|
|
38
|
+
{{/each}}
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Recommendation
|
|
43
|
+
|
|
44
|
+
{{recommendation}}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# {{project_name}} — Tasks
|
|
3
|
+
|
|
4
|
+
> Sequenced implementation tasks with pre-implementation gates, `[P]` parallel markers, effort estimates, and requirement traceability.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Pre-Implementation Gates
|
|
9
|
+
|
|
10
|
+
Before writing any code, the following gates must pass:
|
|
11
|
+
|
|
12
|
+
{{#each gates}}
|
|
13
|
+
- [ ] {{this}}
|
|
14
|
+
{{/each}}
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Task Breakdown
|
|
19
|
+
|
|
20
|
+
| ID | Task | [P] | Effort | Depends On | Traces To |
|
|
21
|
+
|----|------|-----|--------|------------|-----------|
|
|
22
|
+
| {{task_table}} | | | | | |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Dependency Graph
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
{{dependency_graph}}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Effort Summary
|
|
35
|
+
|
|
36
|
+
| Phase | Tasks | Parallel | Effort |
|
|
37
|
+
|-------|-------|----------|--------|
|
|
38
|
+
| {{effort_summary}} | | | |
|
|
39
|
+
| **Total** | **{{total_tasks}}** | **{{parallel_tasks}}** | **{{total_effort}}** |
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# Infrastructure as Code: {{title}}
|
|
3
|
+
|
|
4
|
+
**Feature**: {{feature_id}}
|
|
5
|
+
**Provider**: {{provider}}
|
|
6
|
+
**Cloud**: {{cloud}}
|
|
7
|
+
**Date**: {{date}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Modules
|
|
12
|
+
|
|
13
|
+
{{#each modules}}
|
|
14
|
+
### {{name}}
|
|
15
|
+
|
|
16
|
+
{{description}}
|
|
17
|
+
|
|
18
|
+
**Resources**: {{resources}}
|
|
19
|
+
|
|
20
|
+
{{/each}}
|
|
21
|
+
|
|
22
|
+
## Variables
|
|
23
|
+
|
|
24
|
+
| Name | Type | Description | Default | Required |
|
|
25
|
+
|------|------|-------------|---------|----------|
|
|
26
|
+
{{#each variables}}
|
|
27
|
+
| {{name}} | {{type}} | {{description}} | {{default}} | {{required}} |
|
|
28
|
+
{{/each}}
|
|
29
|
+
|
|
30
|
+
## Architecture Diagram
|
|
31
|
+
|
|
32
|
+
```mermaid
|
|
33
|
+
{{diagram}}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Validation
|
|
37
|
+
|
|
38
|
+
Run `sdd_validate_iac` to validate this configuration via Terraform MCP.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Test Stubs — {{feature_name}}
|
|
2
|
+
|
|
3
|
+
> Auto-generated by Specky SDD from acceptance criteria in SPECIFICATION.md and TASKS.md.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Framework: {{framework}}
|
|
8
|
+
|
|
9
|
+
## Traceability
|
|
10
|
+
|
|
11
|
+
| Test ID | Requirement | Description |
|
|
12
|
+
|---------|-------------|-------------|
|
|
13
|
+
{{#each stubs}}
|
|
14
|
+
| {{id}} | {{requirement_id}} | {{description}} |
|
|
15
|
+
{{/each}}
|
|
16
|
+
|
|
17
|
+
## Generated File
|
|
18
|
+
|
|
19
|
+
- **Output:** `{{output_file}}`
|
|
20
|
+
- **Total Tests:** {{total_tests}}
|
|
21
|
+
- **Framework:** {{framework}}
|
|
22
|
+
|
|
23
|
+
## Next Steps
|
|
24
|
+
|
|
25
|
+
1. Open the generated test file at `{{output_file}}`
|
|
26
|
+
2. Replace each `TODO: implement test` placeholder with real assertions
|
|
27
|
+
3. Run your test suite to verify all stubs execute
|
|
28
|
+
4. Map each passing test back to its requirement ID for traceability
|
|
29
|
+
|
|
30
|
+
## Notes
|
|
31
|
+
|
|
32
|
+
- Each test stub traces to an acceptance criterion from SPECIFICATION.md
|
|
33
|
+
- Test IDs (TC-001, TC-002, ...) map to requirement IDs (REQ-001, REQ-002, ...)
|
|
34
|
+
- Stubs are intentionally minimal — add setup, teardown, and assertions as needed
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# User Stories: {{title}}
|
|
3
|
+
|
|
4
|
+
**Feature**: {{feature_id}}
|
|
5
|
+
**Date**: {{date}}
|
|
6
|
+
**Total Stories**: {{total_count}}
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
{{#each stories}}
|
|
11
|
+
## {{id}}: {{title}} (Priority: {{priority}})
|
|
12
|
+
|
|
13
|
+
{{description}}
|
|
14
|
+
|
|
15
|
+
### Acceptance Criteria
|
|
16
|
+
|
|
17
|
+
{{#each acceptance_criteria}}
|
|
18
|
+
- [ ] {{this}}
|
|
19
|
+
{{/each}}
|
|
20
|
+
|
|
21
|
+
### Independent Test
|
|
22
|
+
|
|
23
|
+
{{independent_test}}
|
|
24
|
+
|
|
25
|
+
### User Flow
|
|
26
|
+
|
|
27
|
+
```mermaid
|
|
28
|
+
{{flow_diagram}}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
{{/each}}
|
|
34
|
+
|
|
35
|
+
## Overview Diagram
|
|
36
|
+
|
|
37
|
+
```mermaid
|
|
38
|
+
{{overview_diagram}}
|
|
39
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# Task Verification Report: {{title}}
|
|
3
|
+
|
|
4
|
+
**Feature**: {{feature_id}}
|
|
5
|
+
**Date**: {{date}}
|
|
6
|
+
**Pass Rate**: {{pass_rate}}%
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Verification Results
|
|
11
|
+
|
|
12
|
+
| Task | Claimed | Verified | Phantom? | Evidence |
|
|
13
|
+
|------|---------|----------|----------|----------|
|
|
14
|
+
{{#each results}}
|
|
15
|
+
| {{task_id}} | {{claimed_status}} | {{verified_status}} | {{phantom}} | {{evidence}} |
|
|
16
|
+
{{/each}}
|
|
17
|
+
|
|
18
|
+
## Summary
|
|
19
|
+
|
|
20
|
+
- **Total Tasks**: {{total_tasks}}
|
|
21
|
+
- **Verified**: {{verified_count}}
|
|
22
|
+
- **Phantom Completions**: {{phantom_count}}
|
|
23
|
+
- **Pass Rate**: {{pass_rate}}%
|
|
24
|
+
|
|
25
|
+
## Diagram
|
|
26
|
+
|
|
27
|
+
```mermaid
|
|
28
|
+
{{diagram}}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Gate Decision
|
|
32
|
+
|
|
33
|
+
{{gate_decision}}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
# Work Items Export: {{title}}
|
|
3
|
+
|
|
4
|
+
**Feature**: {{feature_id}}
|
|
5
|
+
**Platform**: {{platform}}
|
|
6
|
+
**Date**: {{date}}
|
|
7
|
+
**Total Items**: {{total_items}}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Export Summary
|
|
12
|
+
|
|
13
|
+
| Task ID | Title | Traces To | Effort |
|
|
14
|
+
|---------|-------|-----------|--------|
|
|
15
|
+
{{#each items}}
|
|
16
|
+
| {{task_id}} | {{title}} | {{traces_to}} | {{effort}} |
|
|
17
|
+
{{/each}}
|
|
18
|
+
|
|
19
|
+
## Routing Instructions
|
|
20
|
+
|
|
21
|
+
- **MCP Server**: {{mcp_server}}
|
|
22
|
+
- **Tool**: {{tool_name}}
|
|
23
|
+
- **Note**: {{routing_note}}
|
|
24
|
+
|
|
25
|
+
## Next Steps
|
|
26
|
+
|
|
27
|
+
The AI client should call the {{platform}} MCP server for each work item above.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specky-sdd",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"description": "Specky — 57 MCP tools for Spec-Driven Development. 10-phase pipeline, enterprise security (rate limiting, HMAC state integrity, RBAC, hash-chained audit), model routing guidance, context tiering, cognitive debt metrics, EARS notation, 17 diagram types.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
Binary file
|
|
Binary file
|