devspec 0.1.0__py3-none-any.whl
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.
- devspec-0.1.0.dist-info/METADATA +522 -0
- devspec-0.1.0.dist-info/RECORD +133 -0
- devspec-0.1.0.dist-info/WHEEL +4 -0
- devspec-0.1.0.dist-info/entry_points.txt +2 -0
- devspec-0.1.0.dist-info/licenses/LICENSE +201 -0
- devspec_installer/__init__.py +3 -0
- devspec_installer/__main__.py +5 -0
- devspec_installer/cli.py +615 -0
- devspec_installer/payload/.agents/rules/devspec-workflow.md +25 -0
- devspec_installer/payload/.agents/skills/devspec-clarify.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-codebase-structure.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-coding-standards.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-diagram.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-extract.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-finalize.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-implement.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-projectcontext.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-review.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-rules.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-story.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-tasks.md +14 -0
- devspec_installer/payload/.agents/skills/devspec-techstack.md +14 -0
- devspec_installer/payload/.claude/skills/devspec-clarify/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-codebase-structure/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-coding-standards/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-diagram/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-extract/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-finalize/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-implement/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-projectcontext/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-review/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-rules/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-story/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-tasks/SKILL.md +13 -0
- devspec_installer/payload/.claude/skills/devspec-techstack/SKILL.md +13 -0
- devspec_installer/payload/.cursor/rules/devspec-workflow.mdc +23 -0
- devspec_installer/payload/.gemini/commands/devspec/clarify.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/codebase-structure.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/coding-standards.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/diagram.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/extract.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/finalize.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/implement.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/projectcontext.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/review.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/rules.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/story.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/tasks.toml +14 -0
- devspec_installer/payload/.gemini/commands/devspec/techstack.toml +14 -0
- devspec_installer/payload/.github/agents/devspec.clarify.agent.md +39 -0
- devspec_installer/payload/.github/agents/devspec.codebase-structure.agent.md +39 -0
- devspec_installer/payload/.github/agents/devspec.coding-standards.agent.md +40 -0
- devspec_installer/payload/.github/agents/devspec.diagram.agent.md +76 -0
- devspec_installer/payload/.github/agents/devspec.extract.agent.md +91 -0
- devspec_installer/payload/.github/agents/devspec.finalize.agent.md +51 -0
- devspec_installer/payload/.github/agents/devspec.implement-task.agent.md +67 -0
- devspec_installer/payload/.github/agents/devspec.projectcontext.agent.md +34 -0
- devspec_installer/payload/.github/agents/devspec.review.agent.md +42 -0
- devspec_installer/payload/.github/agents/devspec.rules.agent.md +35 -0
- devspec_installer/payload/.github/agents/devspec.story.agent.md +54 -0
- devspec_installer/payload/.github/agents/devspec.tasks.agent.md +44 -0
- devspec_installer/payload/.github/agents/devspec.techstack.agent.md +35 -0
- devspec_installer/payload/.github/prompts/PATTERNS.md +278 -0
- devspec_installer/payload/.github/prompts/README.md +92 -0
- devspec_installer/payload/.github/prompts/devspec.clarify.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.codebase-structure.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.coding-standards.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.diagram.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.extract.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.finalize.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.implement.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.projectcontext.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.review.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.rules.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.story.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.tasks.prompt.md +11 -0
- devspec_installer/payload/.github/prompts/devspec.techstack.prompt.md +11 -0
- devspec_installer/payload/.github/skills/exploration-recovery/SKILL.md +45 -0
- devspec_installer/payload/.github/workflows/python-package-ci.yml +42 -0
- devspec_installer/payload/.github/workflows/python-package-publish.yml +69 -0
- devspec_installer/payload/.github/workflows/winget-package-publish.yml +110 -0
- devspec_installer/payload/AGENTS.md +80 -0
- devspec_installer/payload/GEMINI.md +35 -0
- devspec_installer/payload/README.md +301 -0
- devspec_installer/payload/devspec/adapters/README.md +53 -0
- devspec_installer/payload/devspec/adapters/antigravity.md +52 -0
- devspec_installer/payload/devspec/adapters/claude-code.md +32 -0
- devspec_installer/payload/devspec/adapters/codex-skills/devspec-workflow/SKILL.md +17 -0
- devspec_installer/payload/devspec/adapters/codex.md +22 -0
- devspec_installer/payload/devspec/adapters/command-registry.md +38 -0
- devspec_installer/payload/devspec/adapters/compatibility-matrix.md +21 -0
- devspec_installer/payload/devspec/adapters/copilot.md +20 -0
- devspec_installer/payload/devspec/adapters/cursor.md +22 -0
- devspec_installer/payload/devspec/adapters/enterprise-governance.md +36 -0
- devspec_installer/payload/devspec/adapters/gemini-cli.md +54 -0
- devspec_installer/payload/devspec/adapters/validation-flows.md +90 -0
- devspec_installer/payload/devspec/architecture/_template/artifact-queue.md +27 -0
- devspec_installer/payload/devspec/architecture/_template/decision.md +45 -0
- devspec_installer/payload/devspec/architecture/_template/diagram.md +62 -0
- devspec_installer/payload/devspec/architecture/_template/overview.md +37 -0
- devspec_installer/payload/devspec/architecture/artifact-queue.md +27 -0
- devspec_installer/payload/devspec/architecture/diagrams/README.md +44 -0
- devspec_installer/payload/devspec/architecture/overview.md +37 -0
- devspec_installer/payload/devspec/constitution.md +26 -0
- devspec_installer/payload/devspec/foundation/_template/codebase-structure.md +64 -0
- devspec_installer/payload/devspec/foundation/_template/coding-standards.md +46 -0
- devspec_installer/payload/devspec/foundation/_template/discovery-exclusions.md +52 -0
- devspec_installer/payload/devspec/foundation/_template/exploration-state.md +15 -0
- devspec_installer/payload/devspec/foundation/_template/extraction-state.md +45 -0
- devspec_installer/payload/devspec/foundation/_template/project-context.md +37 -0
- devspec_installer/payload/devspec/foundation/_template/provider-integrations.md +94 -0
- devspec_installer/payload/devspec/foundation/_template/rules.md +54 -0
- devspec_installer/payload/devspec/foundation/_template/tech-stack.md +49 -0
- devspec_installer/payload/devspec/foundation/codebase-structure.md +64 -0
- devspec_installer/payload/devspec/foundation/coding-standards.md +46 -0
- devspec_installer/payload/devspec/foundation/discovery-exclusions.md +52 -0
- devspec_installer/payload/devspec/foundation/extraction-state.md +45 -0
- devspec_installer/payload/devspec/foundation/project-context.md +33 -0
- devspec_installer/payload/devspec/foundation/provider-integrations.md +94 -0
- devspec_installer/payload/devspec/foundation/rules.md +52 -0
- devspec_installer/payload/devspec/foundation/tech-stack.md +49 -0
- devspec_installer/payload/devspec/glossary.md +111 -0
- devspec_installer/payload/devspec/work-items/_template/clarify.md +28 -0
- devspec_installer/payload/devspec/work-items/_template/decisions.md +9 -0
- devspec_installer/payload/devspec/work-items/_template/diagrams.md +42 -0
- devspec_installer/payload/devspec/work-items/_template/finalize.md +65 -0
- devspec_installer/payload/devspec/work-items/_template/implement.md +63 -0
- devspec_installer/payload/devspec/work-items/_template/meta.md +63 -0
- devspec_installer/payload/devspec/work-items/_template/notes.md +7 -0
- devspec_installer/payload/devspec/work-items/_template/review.md +41 -0
- devspec_installer/payload/devspec/work-items/_template/story.md +59 -0
- devspec_installer/payload/devspec/work-items/_template/tasks.md +38 -0
- devspec_installer/payload/packaging/devspec-profiles.json +60 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Architecture Overview
|
|
2
|
+
|
|
3
|
+
Use this artifact for confirmed high-level architecture context, durable diagram references, ADR pointers, and unresolved architecture gaps. Keep detailed repository layout in `devspec/foundation/codebase-structure.md`, integration contracts in `devspec/foundation/codebase-structure.md#integration-contracts`, diagram queue state in `devspec/architecture/artifact-queue.md`, and full ADR content in ADR files created under `devspec/architecture/decisions/` when needed.
|
|
4
|
+
|
|
5
|
+
## Architecture Context
|
|
6
|
+
|
|
7
|
+
Use this section for confirmed architecture facts that affect system understanding across major components, integration relationships, runtime boundaries, and important data movement. Keep implementation file placement in `devspec/foundation/codebase-structure.md#work-areas-and-boundaries` and detailed contracts in `devspec/foundation/codebase-structure.md#integration-contracts`.
|
|
8
|
+
|
|
9
|
+
| Context type | Subject | Summary | Source | Confidence | Developer relevance |
|
|
10
|
+
| --- | --- | --- | --- | --- | --- |
|
|
11
|
+
| component | | | | | |
|
|
12
|
+
| integration | | | | | |
|
|
13
|
+
| data-flow | | | | | |
|
|
14
|
+
|
|
15
|
+
## Diagram Reference Index
|
|
16
|
+
|
|
17
|
+
Use this section for confirmed high-level diagrams in this file and links to durable detailed diagrams. Do not mirror queue status here; track proposed, confirmed, generated, skipped, or blocked diagram work in `devspec/architecture/artifact-queue.md`.
|
|
18
|
+
|
|
19
|
+
| ID | Scope | Diagram type | Subject | Link or section | Usage notes |
|
|
20
|
+
| --- | --- | --- | --- | --- | --- |
|
|
21
|
+
| | architecture, module, feature, workflow, user-journey | flowchart, sequenceDiagram, journey, stateDiagram, classDiagram, erDiagram | | `devspec/architecture/diagrams/dia-NNN-<diagram-name>.md` or section anchor | |
|
|
22
|
+
|
|
23
|
+
## Decision Reference Index
|
|
24
|
+
|
|
25
|
+
Use this section only for pointers to durable ADRs or confirmed architecture decisions. Keep metadata, context, outcome, impact, and references in the ADR file.
|
|
26
|
+
|
|
27
|
+
| Decision | Reference | Architecture relevance |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| | `devspec/architecture/decisions/<adr-file>.md` | |
|
|
30
|
+
|
|
31
|
+
## Architecture Gaps and Blockers
|
|
32
|
+
|
|
33
|
+
Use this section only for missing or conflicting architecture facts that prevent reliable planning, diagram generation, or architecture decision recording. Keep implementation blockers in work-item artifacts.
|
|
34
|
+
|
|
35
|
+
| Gap or blocker | Impact | Required resolution | Resolution state |
|
|
36
|
+
| --- | --- | --- | --- |
|
|
37
|
+
| | | | open |
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Architecture Diagram Queue
|
|
2
|
+
|
|
3
|
+
Use this file as the resumable queue register for proposed and generated architecture diagrams. Keep generated diagram content in the target artifact; keep only queue metadata, evidence, confidence, status, and next action or notes here.
|
|
4
|
+
|
|
5
|
+
Store high-level diagrams in `devspec/architecture/overview.md`, durable detailed diagrams in `devspec/architecture/diagrams/dia-NNN-<diagram-name>.md`, and temporary work-item diagrams in `devspec/work-items/<work-item-folder>/diagrams.md`.
|
|
6
|
+
|
|
7
|
+
## Diagram Queue Register
|
|
8
|
+
|
|
9
|
+
Add rows only when extraction or `/devspec.diagram` identifies real diagram candidates backed by evidence. Keep one row per diagram subject and update the existing row instead of creating duplicates.
|
|
10
|
+
|
|
11
|
+
| ID | Scope | Diagram type | Subject | Target location | Evidence | Confidence | Status | Tags | Next action or notes |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
13
|
+
|
|
14
|
+
## Queue Field Definitions
|
|
15
|
+
|
|
16
|
+
| Field | Guidance |
|
|
17
|
+
| --- | --- |
|
|
18
|
+
| ID | Use stable IDs such as `DIA-001`, preserving existing IDs and assigning the next available number for new rows. |
|
|
19
|
+
| Scope | Use `architecture`, `module`, `feature`, `workflow`, `user-journey`, or `work-item`. Prefer durable scopes over `work-item` unless the diagram is explicitly temporary or work-item-specific. |
|
|
20
|
+
| Diagram type | Use the Mermaid family only: `flowchart`, `sequenceDiagram`, `journey`, `stateDiagram`, `classDiagram`, or `erDiagram`. Do not include orientation here. |
|
|
21
|
+
| Subject | Use a specific lowercase kebab-case subject that can map to one diagram file or one overview section. For queued architecture diagrams, prefix the subject with the lowercase queue ID, such as `dia-001-order-fulfillment-flow`. |
|
|
22
|
+
| Target location | Use `devspec/architecture/overview.md#diagram-reference-index` for high-level overview diagrams, `devspec/architecture/diagrams/dia-NNN-<diagram-name>.md` for durable detailed diagrams, or `devspec/work-items/<work-item-folder>/diagrams.md#diagram-content` for temporary work-item diagrams. |
|
|
23
|
+
| Evidence | Name the source paths, docs, ADRs, queue request, or user-confirmed basis supporting the candidate. |
|
|
24
|
+
| Confidence | Use `observed` for direct evidence, `high-confidence` for inference from multiple local evidence points, or `low-confidence` when useful but incomplete evidence needs assumptions before generation. |
|
|
25
|
+
| Status | Use `devspec/glossary.md#artifact-status-values`; queue status belongs here, not in diagram indexes or generated diagram content. |
|
|
26
|
+
| Tags | Use comma-separated lowercase tags such as `process-flow`, `business-process`, `user-journey`, `lifecycle-flow`, or `hybrid-user-to-data-operational-flow` when they apply. Leave blank only when no durable selection tag is useful. |
|
|
27
|
+
| Next action or notes | Record duplicate-check result, suggested Mermaid declaration such as `flowchart LR` or `sequenceDiagram`, assumptions, blocker details, skip reason, or the next action needed. |
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Architecture Diagrams
|
|
2
|
+
|
|
3
|
+
Use this folder for durable Mermaid diagrams that are more specific than the high-level architecture context in `devspec/architecture/overview.md`.
|
|
4
|
+
|
|
5
|
+
Store module, feature workflow, process-flow, user journey, sequence, state, class/domain, and cross-feature diagrams as one Markdown file per subject. Track proposed, generated, skipped, or blocked diagram work with evidence, confidence, and tags in `devspec/architecture/artifact-queue.md`.
|
|
6
|
+
|
|
7
|
+
## File and Queue Naming
|
|
8
|
+
|
|
9
|
+
Use Title Case for diagram display names and lowercase sequence-prefixed kebab-case for subject slugs and filenames. Queue ID `DIA-001` maps to subject and file prefix `dia-001-`; for example, `DIA-001 - Order Fulfillment Flow` uses `devspec/architecture/diagrams/dia-001-order-fulfillment-flow.md`. Existing `DIA-*` numbers and `dia-NNN-*` files must not be renumbered.
|
|
10
|
+
|
|
11
|
+
Keep default subjects language-neutral after the sequence prefix, such as `dia-NNN-system-context`, `dia-NNN-runtime-containers`, `dia-NNN-dependency-graph`, or `dia-NNN-authentication-authorization-flow`. Use `dia-NNN-hybrid-user-to-data-operational-flow` for the durable hybrid flow that connects user entry points, application boundaries, services, data stores, validations, operational states, and outcomes.
|
|
12
|
+
|
|
13
|
+
Queue `Diagram type` records the Mermaid family only. The generated diagram artifact records the full Mermaid declaration, such as `flowchart LR`, `flowchart TD`, `sequenceDiagram`, `stateDiagram-v2`, or `erDiagram`.
|
|
14
|
+
|
|
15
|
+
`DIA-*` IDs, `dia-NNN-*` subjects, and `dia-NNN-*` filenames are durable diagram file and diagram queue naming conventions. They must not leak into Mermaid internal naming unless they are part of metadata outside the diagram block.
|
|
16
|
+
|
|
17
|
+
## Mermaid Readability
|
|
18
|
+
|
|
19
|
+
- Use simple internal names: short alphanumeric node IDs such as `AuthCtrl` or `ProviderSvc`, double-quoted node labels of 1-4 words such as `AuthCtrl["Authentication Controller"]`, and 2-3 word edge labels such as `-->|"API Calls"|`.
|
|
20
|
+
- Put interaction context on edge labels, not inside node labels.
|
|
21
|
+
- Do not use `\n` or `<br>` line breaks inside node labels or edge labels.
|
|
22
|
+
|
|
23
|
+
## Flowchart Scope
|
|
24
|
+
|
|
25
|
+
- Keep architectural flowcharts and graphs structurally unidirectional and adjacent by layer.
|
|
26
|
+
- Map dependency or invocation direction, such as UI -> API -> service -> repository -> database.
|
|
27
|
+
- Avoid cross-layer arrows that skip layers.
|
|
28
|
+
- Treat return paths as implied by downward invocation arrows.
|
|
29
|
+
- Keep each architectural flowchart focused on one primary business domain at macro level, not overloaded graphs or component internals.
|
|
30
|
+
- Do not use decision diamonds, if/else paths, validation loops, error branches, UI micro-interactions, HTTP return codes, validation exceptions, or database error returns unless the user explicitly requests an algorithm or activity flowchart.
|
|
31
|
+
|
|
32
|
+
## Sequence and Boundary Guidance
|
|
33
|
+
|
|
34
|
+
- Use `sequenceDiagram` when exact step-by-step request and response behavior is required.
|
|
35
|
+
- Show messages between distinct participants only.
|
|
36
|
+
- Default to the happy path, omit generic error `alt` or `opt` blocks unless requested, collapse pass-through API client helpers, and use method names such as `AuthenticateAsync(req)` for message labels.
|
|
37
|
+
- Keep runtime communication and compile-time project dependencies in separate diagrams; default to runtime or logical data flow unless the user explicitly requests a project dependency graph.
|
|
38
|
+
- Logical architecture diagrams must include only actual end users, client applications, runtime components, data stores, and external systems that interact with the live application.
|
|
39
|
+
- Exclude developers, maintainers, Git, CI/CD, deployment pipelines, build artifacts, and source-code project files unless the diagram is specifically about SDLC, build, deployment, or static project dependencies.
|
|
40
|
+
- Place databases owned and exclusively used by the application inside the system boundary.
|
|
41
|
+
|
|
42
|
+
## Detail to Avoid
|
|
43
|
+
|
|
44
|
+
Avoid API, tech stack, and framework bloat in generated Mermaid content. Do not put HTTP verbs, route templates, status codes, DTO or payload names, Swagger details, framework versions, specific library names, hosting models, or standard framework wiring into flowchart nodes unless the requested diagram is specifically about startup, request-pipeline, infrastructure-layer, or physical deployment behavior.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Architecture Overview
|
|
2
|
+
|
|
3
|
+
Use this artifact for confirmed high-level architecture context, durable diagram references, ADR pointers, and unresolved architecture gaps. Keep detailed repository layout in `devspec/foundation/codebase-structure.md`, integration contracts in `devspec/foundation/codebase-structure.md#integration-contracts`, diagram queue state in `devspec/architecture/artifact-queue.md`, and full ADR content in ADR files created under `devspec/architecture/decisions/` when needed.
|
|
4
|
+
|
|
5
|
+
## Architecture Context
|
|
6
|
+
|
|
7
|
+
Use this section for confirmed architecture facts that affect system understanding across major components, integration relationships, runtime boundaries, and important data movement. Keep implementation file placement in `devspec/foundation/codebase-structure.md#work-areas-and-boundaries` and detailed contracts in `devspec/foundation/codebase-structure.md#integration-contracts`.
|
|
8
|
+
|
|
9
|
+
| Context type | Subject | Summary | Source | Confidence | Developer relevance |
|
|
10
|
+
| --- | --- | --- | --- | --- | --- |
|
|
11
|
+
| component | | | | | |
|
|
12
|
+
| integration | | | | | |
|
|
13
|
+
| data-flow | | | | | |
|
|
14
|
+
|
|
15
|
+
## Diagram Reference Index
|
|
16
|
+
|
|
17
|
+
Use this section for confirmed high-level diagrams in this file and links to durable detailed diagrams. Do not mirror queue status here; track proposed, confirmed, generated, skipped, or blocked diagram work in `devspec/architecture/artifact-queue.md`.
|
|
18
|
+
|
|
19
|
+
| ID | Scope | Diagram type | Subject | Link or section | Usage notes |
|
|
20
|
+
| --- | --- | --- | --- | --- | --- |
|
|
21
|
+
| | architecture, module, feature, workflow, user-journey | flowchart, sequenceDiagram, journey, stateDiagram, classDiagram, erDiagram | | `devspec/architecture/diagrams/dia-NNN-<diagram-name>.md` or section anchor | |
|
|
22
|
+
|
|
23
|
+
## Decision Reference Index
|
|
24
|
+
|
|
25
|
+
Use this section only for pointers to durable ADRs or confirmed architecture decisions. Keep metadata, context, outcome, impact, and references in the ADR file.
|
|
26
|
+
|
|
27
|
+
| Decision | Reference | Architecture relevance |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| | `devspec/architecture/decisions/<adr-file>.md` | |
|
|
30
|
+
|
|
31
|
+
## Architecture Gaps and Blockers
|
|
32
|
+
|
|
33
|
+
Use this section only for missing or conflicting architecture facts that prevent reliable planning, diagram generation, or architecture decision recording. Keep implementation blockers in work-item artifacts.
|
|
34
|
+
|
|
35
|
+
| Gap or blocker | Impact | Required resolution | Resolution state |
|
|
36
|
+
| --- | --- | --- | --- |
|
|
37
|
+
| | | | open |
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Constitution
|
|
2
|
+
|
|
3
|
+
This file holds enduring principles that apply across work items and agents. Use it for rare, durable guidance; put operational delivery gates, evolving compliance rules, and enforcement details in `devspec/foundation/rules.md`.
|
|
4
|
+
|
|
5
|
+
## Durable Principles
|
|
6
|
+
|
|
7
|
+
| Area | Principle |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Engineering | Prefer simple solutions over speculative abstractions. |
|
|
10
|
+
| Engineering | Favor readable, maintainable code over cleverness. |
|
|
11
|
+
| Delivery | Keep requirements, implementation, and validation aligned. |
|
|
12
|
+
| Delivery | Changes must stay within approved scope. |
|
|
13
|
+
| Delivery | Significant scope changes must return to an earlier devspec stage. |
|
|
14
|
+
| Validation | Validation is required before work is considered complete. |
|
|
15
|
+
| Validation | New behavior should have corresponding validation. |
|
|
16
|
+
| Validation | Regressions should be captured in tests when practical. |
|
|
17
|
+
| Security and compliance | Do not weaken security controls without explicit approval. |
|
|
18
|
+
| Security and compliance | Handle sensitive data according to project and organizational rules. |
|
|
19
|
+
|
|
20
|
+
## Amendment Policy
|
|
21
|
+
|
|
22
|
+
| Rule | Requirement |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| Change threshold | Update this file only for durable principles that rarely change. |
|
|
25
|
+
| Confirmation | Principle-level changes require explicit confirmation before writing. |
|
|
26
|
+
| Operational rules | Put operational delivery gates and evolving compliance rules in `devspec/foundation/rules.md`. |
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Codebase Structure
|
|
2
|
+
|
|
3
|
+
Use this artifact to help developers and agents decide where work belongs, which repositories are usable, and which boundaries must be preserved. Keep repository trees selective and keep optional tables only when they contain real project facts or unresolved blockers.
|
|
4
|
+
|
|
5
|
+
## Repository Layouts
|
|
6
|
+
|
|
7
|
+
Use this section for selective repository trees, up to a maximum of 4-5 levels, that help agents decide where to create, edit, or inspect files. Include important source roots, feature or module folders, tests, scripts, config, infrastructure, docs, and routing-critical files when relevant. Do not list every file. When deeper detail is needed for placement, capture the specific path or rule in `Work Areas and Boundaries` instead of expanding the tree. Omit paths excluded by `devspec/foundation/discovery-exclusions.md` unless a project override marks them source-owned.
|
|
8
|
+
|
|
9
|
+
Use one `### Repository: <repository-name>` subsection per repository when multiple repositories participate.
|
|
10
|
+
|
|
11
|
+
### Repository: <repository-name>
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
<repository-name>/
|
|
15
|
+
|-- <source-root>/
|
|
16
|
+
| |-- <feature-or-module>/
|
|
17
|
+
| | |-- <components-or-handlers>/
|
|
18
|
+
| | `-- <services-or-utils>/
|
|
19
|
+
|-- <tests>/
|
|
20
|
+
| |-- <unit-or-integration>/
|
|
21
|
+
| `-- <e2e>/
|
|
22
|
+
|-- <scripts-or-tools>/
|
|
23
|
+
|-- <config-or-infra>/
|
|
24
|
+
|-- <docs>/
|
|
25
|
+
`-- <routing-or-package-file>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Repository Configuration
|
|
29
|
+
|
|
30
|
+
Use this section only when multiple repositories participate in delivery, or when a non-default repository path or access limit affects work. Do not omit it for multi-repo sources or dependencies; record missing role, workspace, path, or access facts as blockers instead of dropping the section.
|
|
31
|
+
|
|
32
|
+
Rows may be seeded from named `/devspec.extract` input such as `UI - D:\repo-ui, API - D:\repo-api`. Use the supplied label as the initial repository name and role candidate, then refine it with evidence or user confirmation.
|
|
33
|
+
|
|
34
|
+
| Repository | Role | Local path | In current workspace | Access requirement | Evidence | Confidence | Work guidance |
|
|
35
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
36
|
+
| <repository-name> | <delivery-role> | <local-path-or-unknown> | yes, no, unknown | See `devspec/glossary.md#access-requirement-values` | <input-or-source> | confirmed, observed, inferred, blocked | <how work should use-or-avoid-this-repository> |
|
|
37
|
+
|
|
38
|
+
Do not infer access from repository location. For missing or ambiguous access requirements, ask the user to confirm one value from `devspec/glossary.md#access-requirement-values` before relying on the row.
|
|
39
|
+
|
|
40
|
+
## Work Areas and Boundaries
|
|
41
|
+
|
|
42
|
+
Use this section for internal file-placement decisions: modules, bounded contexts, layers, shared packages, ownership or review routing, and cross-cutting code placement. Put a fact here only when it tells future work where code belongs, who owns it, what must not cross a boundary, or how related code should be grouped. Put external service, API, event, database, or cross-repo contracts in `Integration Contracts` instead.
|
|
43
|
+
|
|
44
|
+
Common area types include `module`, `feature`, `layer`, `service`, `shared-package`, `cross-cutting`, and `ownership`.
|
|
45
|
+
|
|
46
|
+
| Scope | Area | Area type | Responsibility | Key paths | Boundary or placement rule | Owner or reviewer | Evidence | Confidence | Work guidance |
|
|
47
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
48
|
+
| repository:<repository-name> | <area-name> | <area-type> | <primary-responsibility> | <path-or-pattern> | <allowed-dependencies-placement-or-review-rule> | <owner-team-reviewer-or-unknown> | <source-path-or-input> | confirmed, observed, inferred, blocked | <what future work should do> |
|
|
49
|
+
|
|
50
|
+
## Integration Contracts
|
|
51
|
+
|
|
52
|
+
Use this section for boundaries between repositories, modules, services, users, data stores, queues, APIs, providers, or external systems. A row belongs here when future work must preserve a protocol, data shape, dependency direction, lifecycle, or validation expectation.
|
|
53
|
+
|
|
54
|
+
| Source scope | Target or system | Contract or interface | Direction | Data or protocol | Required handling | Evidence | Confidence |
|
|
55
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
56
|
+
| repository:<repository-name> | <target-system> | <api-event-db-package-or-user-contract> | inbound, outbound, bidirectional | <data-shape-or-protocol> | <what to preserve-or-validate> | <source-path-or-input> | confirmed, observed, inferred, blocked |
|
|
57
|
+
|
|
58
|
+
## Structure Gaps and Blockers
|
|
59
|
+
|
|
60
|
+
Use this section only for missing or conflicting facts that prevent reliable repository selection, file placement, access validation, ownership routing, or integration handling. Do not duplicate normal open risks from work-item artifacts.
|
|
61
|
+
|
|
62
|
+
| Gap or blocker | Affected section | Impact | Required resolution | Status |
|
|
63
|
+
| --- | --- | --- | --- | --- |
|
|
64
|
+
| <missing-or-conflicting-fact> | Repository Configuration, Work Areas and Boundaries, Integration Contracts, or Repository Layouts | <why agents cannot proceed safely> | <question-evidence-or-access-needed> | open |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Coding Standards
|
|
2
|
+
|
|
3
|
+
Use this artifact as a compact, evidence-backed catalog for how developers should write, test, document, and review code. Prefer source references and short rules over copied prose. Omit optional rows or sections with no real standards or evidence.
|
|
4
|
+
|
|
5
|
+
## Standards Evidence Sources
|
|
6
|
+
|
|
7
|
+
Use this section only for source documents, configuration files, or representative code that support one or more catalog rows. Do not infer coding standards from paths excluded by `devspec/foundation/discovery-exclusions.md`, such as installed dependencies or generated output.
|
|
8
|
+
|
|
9
|
+
| Source | Source type | Applies to | Confidence | Notes |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| <path-or-link> | formatter, linter, standards-doc, config, source-sample, user-input | <language-framework-layer-or-area> | confirmed, observed, inferred, blocked | <why-this-source-matters> |
|
|
12
|
+
|
|
13
|
+
## Standards Catalog
|
|
14
|
+
|
|
15
|
+
Use this as the single place for language, framework, testing, error-handling, logging, documentation, review, observed-pattern, and anti-pattern guidance. Add a row only when the rule changes how developers should write or review code. Keep examples as references to `Standards Examples`, not long snippets in this table.
|
|
16
|
+
|
|
17
|
+
Use `Type` values as follows:
|
|
18
|
+
- `rule`: explicit standard from a project source, user instruction, or config.
|
|
19
|
+
- `observed-pattern`: recurring style or structure found in source evidence.
|
|
20
|
+
- `anti-pattern`: forbidden or discouraged pattern with the preferred replacement in `Developer guidance`.
|
|
21
|
+
- `expectation`: cross-cutting review or quality expectation that applies across multiple areas.
|
|
22
|
+
|
|
23
|
+
| ID | Scope | Category | Type | Developer guidance | Evidence | Confidence | Example |
|
|
24
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
25
|
+
| CS-001 | <language-framework-layer-or-area> | file-naming, formatting, sql-layout, comments, member-ordering, linting, testing, framework, error-handling, logging, documentation, review | rule, observed-pattern, anti-pattern, expectation | <what-to-do-or-avoid-and-preferred-pattern> | <source-id-path-or-link> | confirmed, observed, inferred, blocked | EX-001 or n/a |
|
|
26
|
+
|
|
27
|
+
## Standards Examples
|
|
28
|
+
|
|
29
|
+
Include this section only when a short snippet clarifies a style, indentation, naming, grouping, SQL layout, testing pattern, or framework pattern better than a catalog row alone. Keep examples minimal and canonical, usually 5-20 lines. Link each example to one or more catalog row IDs.
|
|
30
|
+
|
|
31
|
+
### EX-001: <example-name>
|
|
32
|
+
|
|
33
|
+
Applies to: CS-001
|
|
34
|
+
Source: `<source-path>`
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
<short representative snippet>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Standards Blockers and Conflicts
|
|
41
|
+
|
|
42
|
+
Use this section only when standards evidence conflicts, required source evidence is missing, or a project decision is needed before agents can apply a standard.
|
|
43
|
+
|
|
44
|
+
| Topic | Affected catalog row | Conflict or gap | Evidence | Resolution needed | Status |
|
|
45
|
+
| --- | --- | --- | --- | --- | --- |
|
|
46
|
+
| <topic> | CS-001 or new | <conflict-or-gap> | <source-paths-or-input> | <question-or-decision> | open |
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Discovery Exclusions
|
|
2
|
+
|
|
3
|
+
Use this file to keep discovery focused on project-owned source, configuration, tests, scripts, infrastructure, and docs.
|
|
4
|
+
|
|
5
|
+
Apply exclusions before broad search, extraction, code-pattern discovery, layout mapping, generated helper scripts, and validation discovery. Respect repository ignore files as a baseline while still applying this file. Do not infer coding standards, architecture, ownership, or implementation behavior from installed dependencies, generated output, caches, coverage output, VCS internals, or tool output. Use manifests, lockfiles, framework config, CI config, docs, source roots, tests, and scripts as evidence instead. Omit excluded folders from layout maps unless `Project Overrides` includes them.
|
|
6
|
+
|
|
7
|
+
Record intentional exceptions in `Project Overrides` before relying on normally excluded paths or adding project-specific exclusions.
|
|
8
|
+
|
|
9
|
+
## Baseline Exclusions
|
|
10
|
+
|
|
11
|
+
Use these categories for every repository, regardless of ecosystem. Ecosystem rules below add framework-specific patterns and evidence hints; they do not replace these defaults.
|
|
12
|
+
|
|
13
|
+
| Category | Exclude by default | Reason | Include only if |
|
|
14
|
+
| --- | --- | --- | --- |
|
|
15
|
+
| VCS internals | `.git/`, `.svn/`, `.hg/` | Version-control metadata is not project source. | User explicitly asks for VCS internals. |
|
|
16
|
+
| Generated or build output | `dist/`, `build/`, `out/`, generated artifacts | Output can be stale, duplicated, minified, or machine-produced. | Output is intentionally source-owned and recorded in `Project Overrides`. |
|
|
17
|
+
| Test and coverage output | `coverage/`, `.nyc_output/`, test result folders | Reports are run artifacts, not source conventions. | User asks for coverage or test-output diagnostics. |
|
|
18
|
+
| Cache and temporary output | `.cache/`, `tmp/`, `temp/`, tool caches | Cache content is transient and often huge. | User asks for cache diagnostics. |
|
|
19
|
+
| Local IDE or machine metadata | `.idea/`, `.vscode/`, editor user settings | Local settings usually reflect one machine, not project standards. | Repository standards explicitly depend on these files. |
|
|
20
|
+
| Dependency installs and package caches | Installed dependency folders and package manager caches | Third-party code and package caches should not drive project conventions. | Dependency source inspection is explicitly requested or overridden. |
|
|
21
|
+
|
|
22
|
+
## Ecosystem Discovery Rules
|
|
23
|
+
|
|
24
|
+
Use this table after detecting the ecosystem. Exclusions listed here are ecosystem-specific additions to `Baseline Exclusions`. Preferred evidence sources are safe discovery targets unless a project override says otherwise.
|
|
25
|
+
|
|
26
|
+
| Ecosystem or framework | Detect from | Additional exclusions | Prefer as evidence |
|
|
27
|
+
| --- | --- | --- | --- |
|
|
28
|
+
| JavaScript and TypeScript, Node.js | `package.json`, lockfiles, `.npmrc`, `.yarnrc*`, `pnpm-workspace.yaml` | `node_modules/`, `.npm/`, `.yarn/cache/`, `.pnpm-store/` | `package.json`, lockfiles, `tsconfig*.json`, scripts, source roots, tests |
|
|
29
|
+
| Angular | `angular.json`, `package.json`, `tsconfig*.json` | `.angular/`, `.nx/` | `angular.json`, `tsconfig*.json`, `src/`, `projects/`, tests |
|
|
30
|
+
| React, Vue, Vite, SvelteKit, Astro, Remix | `package.json`, `vite.config.*`, `vue.config.*`, `svelte.config.*`, `astro.config.*`, `remix.config.*` | `.vite/`, `.svelte-kit/`, `.astro/` | framework config, `src/`, `app/`, `pages/`, `components/`, tests |
|
|
31
|
+
| Next.js and Nuxt | `next.config.*`, `nuxt.config.*`, `package.json` | `.next/`, `.nuxt/`, `.output/`, `.vercel/` | framework config, `app/`, `pages/`, `components/`, `server/`, tests |
|
|
32
|
+
| Nx and Turborepo | `nx.json`, `workspace.json`, `project.json`, `turbo.json`, `pnpm-workspace.yaml` | `.nx/`, `.turbo/` | workspace config, project config, package scripts, source roots |
|
|
33
|
+
| .NET SDK, ASP.NET, Blazor, MAUI | `.sln`, `.csproj`, `.fsproj`, `Directory.Build.*`, `global.json` | `bin/`, `obj/`, `TestResults/`, `artifacts/`, `.vs/` | solution, project files, props, targets, app settings, source and tests |
|
|
34
|
+
| JVM: Java, Kotlin, Spring, Maven, Gradle | `pom.xml`, `build.gradle*`, `settings.gradle*`, `gradle.properties`, `src/main/` | `target/`, `.gradle/`, `.mvn/wrapper/maven-wrapper.jar` | build files, wrapper config, `src/`, resources, tests |
|
|
35
|
+
| Python, Django, Flask, FastAPI, pytest, Poetry, uv | `pyproject.toml`, `requirements*.txt`, `setup.py`, `tox.ini`, `poetry.lock`, `uv.lock`, `manage.py` | `.venv/`, `venv/`, `env/`, `__pycache__/`, `.pytest_cache/`, `.mypy_cache/`, `.ruff_cache/`, `.tox/`, `site-packages/`, `htmlcov/` | project metadata, lockfiles, app packages, source and tests |
|
|
36
|
+
| PHP, Composer, Laravel, Symfony | `composer.json`, `composer.lock`, `artisan`, `symfony.lock` | `vendor/`, `var/cache/`, `var/log/`, `storage/framework/`, `storage/logs/`, `bootstrap/cache/`, `public/build/` | composer files, framework config, `app/`, `src/`, routes, tests |
|
|
37
|
+
| Ruby, Bundler, Rails | `Gemfile`, `Gemfile.lock`, `.ruby-version`, `config/application.rb` | `vendor/bundle/`, `.bundle/`, `tmp/`, `log/`, `public/assets/`, `storage/` | Gemfile, lockfile, `app/`, `config/`, `lib/`, tests |
|
|
38
|
+
| Go | `go.mod`, `go.work` | module cache, generated `vendor/` unless source-owned, `bin/`, `coverage.out` | `go.mod`, `go.sum`, `go.work`, source and tests |
|
|
39
|
+
| Rust | `Cargo.toml`, `Cargo.lock` | `target/`, `tarpaulin-report.html` | manifests, lockfile, `src/`, tests, benches |
|
|
40
|
+
| Android | `settings.gradle*`, `build.gradle*`, `gradle.properties`, `AndroidManifest.xml` | `.gradle/`, `build/`, `app/build/`, `.cxx/`, `captures/` | Gradle files, manifests, `src/`, resources, tests |
|
|
41
|
+
| iOS, SwiftPM, CocoaPods | `Package.swift`, `*.xcodeproj`, `*.xcworkspace`, `Podfile`, `Cartfile` | `DerivedData/`, `Pods/`, `.build/`, `build/`, `xcuserdata/`, `Carthage/Build/` | package manifests, project/workspace files, `Sources/`, `Tests/`, app source |
|
|
42
|
+
| C/C++, CMake, Bazel, Meson, Make | `CMakeLists.txt`, `WORKSPACE`, `MODULE.bazel`, `BUILD.bazel`, `meson.build`, `Makefile` | `cmake-build-*/`, `bazel-*`, `CMakeFiles/`, generated `compile_commands.json` | build files, `src/`, `include/`, `tests/`, toolchain files |
|
|
43
|
+
| Data and ML: notebooks, MLflow, Weights & Biases, checkpoints | `*.ipynb`, `mlflow.yml`, `wandb/`, `requirements*.txt`, `pyproject.toml` | `.ipynb_checkpoints/`, `mlruns/`, `wandb/`, `checkpoints/`, `models/`, `outputs/`, `runs/`, `lightning_logs/` unless source-owned | notebooks, experiment config, requirements, source modules, tests, docs |
|
|
44
|
+
| Infrastructure as code: Terraform, Terragrunt, Pulumi, CDK, Serverless, Helm, Kustomize | `*.tf`, `.terraform.lock.hcl`, `terragrunt.hcl`, `Pulumi.yaml`, `cdk.json`, `serverless.yml`, `Chart.yaml`, `kustomization.yaml` | `.terraform/`, `.terragrunt-cache/`, `cdk.out/`, `.serverless/`, `.pulumi/`, `tfplan`, `crash.log`, packaged `*.tgz` charts | IaC source, lockfiles, modules, manifests, environment config, docs |
|
|
45
|
+
|
|
46
|
+
## Project Overrides
|
|
47
|
+
|
|
48
|
+
Use this table only when a project intentionally owns a normally excluded path or needs an additional exclusion. Overrides must be specific enough that future agents know whether to include the path for evidence, exclude it from broad discovery, or inspect it only for a named purpose.
|
|
49
|
+
|
|
50
|
+
| Scope | Pattern | Action | Purpose | Confirmed by |
|
|
51
|
+
| --- | --- | --- | --- | --- |
|
|
52
|
+
| <repository-or-area> | <path-or-glob> | include, exclude, include-for-purpose | <why-this-exception-exists> | <user-source-or-date> |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Exploration State
|
|
2
|
+
|
|
3
|
+
Use this file to avoid repeating failed searches, generated scripts, helper commands, provider lookups, validation discovery paths, and repair probes. Record only reusable exploration results, not every search or one-off file read.
|
|
4
|
+
|
|
5
|
+
Apply `devspec/foundation/discovery-exclusions.md` before recording or reusing exploration methods.
|
|
6
|
+
|
|
7
|
+
Keep entries concise and evidence-based. Scope must be specific enough to prevent false matches, such as a repository path, provider name, work item, module, technology, or source URL. Goal must describe the exploration task, such as repository extraction, provider resolution, dependency mapping, implementation repair, version lookup, or validation discovery. Remove or update stale entries when the environment changes.
|
|
8
|
+
|
|
9
|
+
## Method Ledger
|
|
10
|
+
|
|
11
|
+
Use this as the single recovery view for reusable exploration methods. Prefer `working` methods first when scope, goal, and assumptions still match. Skip `failed` methods unless the retry condition is met, the user gives new direction, or the method materially changes. Use `superseded` when a better working method replaces an older entry.
|
|
12
|
+
|
|
13
|
+
| Scope | Goal | Method | Outcome | Evidence or failure reason | Retry or reuse condition | Last verified | Notes |
|
|
14
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
15
|
+
| <repository-provider-work-item-module-or-technology> | <repository-extraction-provider-resolution-dependency-mapping-repair-version-lookup-or-validation-discovery> | <search-command-provider-tool-or-process> | working, failed, superseded | <why-it-worked-or-failed> | <when-to-reuse-or-retry> | <date-or-unknown> | <brief-context> |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Extraction State
|
|
2
|
+
|
|
3
|
+
Use this artifact only for the `/devspec.extract` queue, resume state, blockers, and confirmations. Keep extracted facts in target artifacts, reusable discovery methods in `devspec/foundation/exploration-state.md`, and diagram queue state in `devspec/architecture/artifact-queue.md`.
|
|
4
|
+
|
|
5
|
+
## Resume State
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Current stage | extract |
|
|
10
|
+
| Current command | `/devspec.extract` |
|
|
11
|
+
| Current agent | devspec.extract |
|
|
12
|
+
| Run status | See `devspec/glossary.md#run-status-values` |
|
|
13
|
+
| Current task | |
|
|
14
|
+
| Last completed step | |
|
|
15
|
+
| Next required action | |
|
|
16
|
+
| Pending user question | |
|
|
17
|
+
| Recommended option | |
|
|
18
|
+
| Resume command | `/devspec.extract` |
|
|
19
|
+
| Resume notes | |
|
|
20
|
+
| Updated | |
|
|
21
|
+
|
|
22
|
+
## Extraction Queue
|
|
23
|
+
|
|
24
|
+
Use status values from `devspec/glossary.md#task-status-values`; keep exactly one row `active` while extraction is running.
|
|
25
|
+
|
|
26
|
+
| ID | Stage | Target artifact | Evidence focus | Status | Next action | Notes |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| EXT-001 | source-and-access | `devspec/foundation/extraction-state.md` | source input, source labels, source validation, access requirements | pending | Validate sources and required access. | |
|
|
29
|
+
| EXT-002 | discovery-preparation | `devspec/foundation/discovery-exclusions.md` | exclusion rules, ignore files, reusable discovery methods | pending | Apply discovery rules before broad search. | |
|
|
30
|
+
| EXT-003 | project-context | `devspec/foundation/project-context.md` | documentation, README files, product signals, user-facing behavior | pending | Extract evidence-backed project context. | |
|
|
31
|
+
| EXT-004 | technology-stack | `devspec/foundation/tech-stack.md` | manifests, lockfiles, runtime configuration, tooling, CI/CD | pending | Extract stack and version evidence. | |
|
|
32
|
+
| EXT-005 | codebase-structure | `devspec/foundation/codebase-structure.md` | layout, modules, work areas, boundaries, integration contracts, multi-repo configuration | pending | Extract placement and boundary guidance. | |
|
|
33
|
+
| EXT-006 | coding-standards | `devspec/foundation/coding-standards.md` | style guides, observed patterns, tests, examples | pending | Extract standards and anti-patterns. | |
|
|
34
|
+
| EXT-007 | rules-and-constraints | `devspec/foundation/rules.md` | compliance, security, delivery gates, operational constraints | pending | Extract actionable rules only. | |
|
|
35
|
+
| EXT-008 | architecture-overview | `devspec/architecture/overview.md` | components, integrations, runtime boundaries, data movement | pending | Extract high-level architecture context. | |
|
|
36
|
+
| EXT-009 | process-flows | `devspec/architecture/artifact-queue.md` | business-centric end-to-end workflows, user journeys, lifecycle flows, cross-service process sequences, hybrid user-to-data operational flow | pending | Queue eligible process-flow diagram candidates. | |
|
|
37
|
+
| EXT-010 | diagram-candidates | `devspec/architecture/artifact-queue.md` | evidence-backed diagram candidates and duplicate checks | pending | Queue eligible non-process-flow diagram candidates. | |
|
|
38
|
+
| EXT-011 | constitution-candidates | `devspec/constitution.md` | durable principle candidates requiring confirmation | pending | Ask before writing principle changes. | |
|
|
39
|
+
| EXT-012 | closure | `devspec/foundation/extraction-state.md` | artifact update summary, blockers, confirmations, next action | pending | Summarize extraction and select one next action. | |
|
|
40
|
+
|
|
41
|
+
## Blockers and Confirmations
|
|
42
|
+
|
|
43
|
+
| ID | Kind | Related task | Subject | Required action | Resolution | Notes |
|
|
44
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
45
|
+
| | blocker or confirmation | | | | | |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Project Context
|
|
2
|
+
|
|
3
|
+
Use this artifact for durable product facts that should shape future work items. Keep it concise and developer-facing. Omit optional rows or sections with no project content.
|
|
4
|
+
|
|
5
|
+
## Product Overview
|
|
6
|
+
|
|
7
|
+
| Field | Description | Source | Confidence |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Purpose | <why the product exists> | <user-input-or-source> | confirmed |
|
|
10
|
+
| Problem | <user-or-business-problem-being-addressed> | <user-input-or-source> | confirmed |
|
|
11
|
+
| Target outcome | <intended-user-or-business-result> | <user-input-or-source> | confirmed |
|
|
12
|
+
|
|
13
|
+
## Audiences and Stakeholders
|
|
14
|
+
|
|
15
|
+
| Group | Category | Need or responsibility | Source | Confidence |
|
|
16
|
+
| --- | --- | --- | --- | --- |
|
|
17
|
+
| <primary-user-group> | user | <need-or-responsibility> | <user-input-or-source> | confirmed |
|
|
18
|
+
| <stakeholder-group> | stakeholder | <need-or-responsibility> | <user-input-or-source> | confirmed |
|
|
19
|
+
|
|
20
|
+
## Outcomes and Scope
|
|
21
|
+
|
|
22
|
+
Use this section for product goals, explicit scope exclusions, and measurable success signals. Keep operational rules and delivery gates in `rules.md`.
|
|
23
|
+
|
|
24
|
+
| Type | Outcome, boundary, or metric | Implementation implication | Source | Confidence |
|
|
25
|
+
| --- | --- | --- | --- | --- |
|
|
26
|
+
| goal | <desired-product-result> | <how-this-should-shape-implementation-decisions> | <user-input-or-source> | confirmed |
|
|
27
|
+
| scope exclusion | <explicit-exclusion> | <what-not-to-build-or-optimize-for> | <user-input-or-source> | confirmed |
|
|
28
|
+
| success metric | <target-or-signal> | <what to instrument, preserve, or optimize> | <user-input-or-source> | confirmed |
|
|
29
|
+
|
|
30
|
+
## Delivery Context
|
|
31
|
+
|
|
32
|
+
Use this section for product or business constraints and unresolved blockers that affect implementation planning. Keep repository location, access, ownership, and path facts in `codebase-structure.md`.
|
|
33
|
+
|
|
34
|
+
| Type | Context item | Scope | Required handling or next step | Source | Confidence | Status |
|
|
35
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
36
|
+
| constraint | <product-or-business-constraint> | <affected-scope> | <required-action-or-limit> | <user-input-or-source> | confirmed | active |
|
|
37
|
+
| blocker | <unresolved-blocker-or-question> | <affected-scope> | <next-action-needed> | <user-input-or-source> | confirmed | open |
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Provider Integrations
|
|
2
|
+
|
|
3
|
+
Use this policy to resolve external work items during `/devspec.story`. Keep provider-specific lookup behind MCP servers or equivalent integration tools. Manual intake is an explicit fallback, available only when provider resolution is unavailable or intentionally skipped.
|
|
4
|
+
|
|
5
|
+
## Resolution Policy
|
|
6
|
+
|
|
7
|
+
| Policy area | Requirement |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Workflow boundary | Keep work-item intake provider-agnostic; provider-specific lookup belongs in integration tools. |
|
|
10
|
+
| Resolution preference | Prefer exact provider URLs or provider-qualified identifiers over inferred matches. |
|
|
11
|
+
| Ambiguity handling | Ask one structured `clarification` question before resolving an ambiguous provider or identifier. |
|
|
12
|
+
| Manual fallback | Allow manual intake only when external resolution is unavailable and the user explicitly chooses to proceed. |
|
|
13
|
+
| Work-item creation gate | Do not create or update the work-item folder from provider input until the resolved item is shown to the user and explicitly confirmed. |
|
|
14
|
+
| Secret handling | Keep provider authentication, credentials, and secrets outside prompt artifacts. |
|
|
15
|
+
|
|
16
|
+
## Supported Provider Inputs
|
|
17
|
+
|
|
18
|
+
| Provider | Preferred input | Accepted shorthand | Validation guardrail |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| GitHub | Full issue URL or supported pull request URL | `owner/repo#123` | Reject bare numbers unless repository context is configured. |
|
|
21
|
+
| Jira | Full issue URL | Issue key such as `ABC-123` | Reject malformed keys or keys outside configured project patterns. |
|
|
22
|
+
| Azure DevOps | Full work item URL | Numeric ID only with configured organization and project context | Reject numeric IDs when organization or project context is missing. |
|
|
23
|
+
|
|
24
|
+
## Resolution Flow and Outcomes
|
|
25
|
+
|
|
26
|
+
Resolve inputs in this order:
|
|
27
|
+
|
|
28
|
+
| Order | Input path | Required handling |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| 1 | Full provider URL | Validate format, resolve through the configured provider tool, and request structured confirmation on success. |
|
|
31
|
+
| 2 | Provider-qualified identifier | Validate provider context, resolve through the configured provider tool, and request structured confirmation on success. |
|
|
32
|
+
| 3 | Ambiguous identifier | Ask a structured provider `clarification` question before lookup. |
|
|
33
|
+
| 4 | Manual intake | Continue only after the user explicitly chooses manual intake and supplies required manual fields. |
|
|
34
|
+
|
|
35
|
+
Handle outcomes as follows:
|
|
36
|
+
|
|
37
|
+
| Condition | Required handling |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| Invalid input format | Stop intake and explain why the input is invalid. |
|
|
40
|
+
| Ambiguous provider | Ask one structured `clarification` question to identify the provider. |
|
|
41
|
+
| Known provider cannot resolve item | Stop intake and classify the failure as not found, access denied, or integration unavailable when possible. |
|
|
42
|
+
| Integration unavailable | Offer manual intake as an explicit fallback. |
|
|
43
|
+
| Provider resolution succeeds | Show the confirmation summary and require structured confirmation before creating or updating the work-item folder. |
|
|
44
|
+
| Unverified provider input | Treat as blocked or manual fallback only; do not create a normal resolved work item. |
|
|
45
|
+
|
|
46
|
+
## Confirmation Requirements
|
|
47
|
+
|
|
48
|
+
Show this minimum summary when provider resolution succeeds:
|
|
49
|
+
|
|
50
|
+
| Field | Required |
|
|
51
|
+
| --- | --- |
|
|
52
|
+
| Provider | yes |
|
|
53
|
+
| Identifier | yes |
|
|
54
|
+
| Title | yes |
|
|
55
|
+
| Type | when available |
|
|
56
|
+
| Current external status | when available |
|
|
57
|
+
| Canonical link | yes |
|
|
58
|
+
| Short summary | yes |
|
|
59
|
+
|
|
60
|
+
Offer only these structured `confirmation` actions:
|
|
61
|
+
|
|
62
|
+
| Action | Result |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| Confirm and continue | Continue normal resolved intake. |
|
|
65
|
+
| Reject and retry input | Ask a structured `retry` or source-correction question. |
|
|
66
|
+
| Switch to manual intake | Continue only with manual intake requirements. |
|
|
67
|
+
| Cancel | Stop intake. |
|
|
68
|
+
| Custom Answer | Route to clarification; do not create or update the work-item folder until resolved. |
|
|
69
|
+
|
|
70
|
+
## Integration Tooling and Access
|
|
71
|
+
|
|
72
|
+
| Area | Requirement |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| Tooling model | Use a provider-specific MCP server or one internal MCP server that wraps multiple providers. |
|
|
75
|
+
| Lookup tools | Validate and fetch work items by URL or provider-specific identifier. |
|
|
76
|
+
| Returned data | Include title, description, status, labels or type, links, and relevant metadata. |
|
|
77
|
+
| Failure detail | Distinguish not found, unauthorized, malformed input, and transient provider failures. |
|
|
78
|
+
| Authentication configuration | Keep provider authentication outside prompt artifacts. |
|
|
79
|
+
| Privilege model | Use least-privilege tokens or service identities. |
|
|
80
|
+
| Access mode | Prefer read-only access for intake and review unless write-back is required. |
|
|
81
|
+
|
|
82
|
+
## Work-Item Intake Recording Requirements
|
|
83
|
+
|
|
84
|
+
| Recording area | Requirement |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| Source resolution status | Record a value from `devspec/glossary.md#source-resolution-status-values` in `meta.md`. |
|
|
87
|
+
| Lookup attempt | Record provider and resolution notes. |
|
|
88
|
+
| Manual source status | Use source resolution status `manual` only when the user explicitly chooses to continue without external resolution. |
|
|
89
|
+
| Manual intake | Require external reference, manual description, and manual acceptance criteria. |
|
|
90
|
+
| Resolved items | Require structured confirmation after showing resolved details. |
|
|
91
|
+
| Blocked status | Use when input is invalid or required resolution failed. |
|
|
92
|
+
| Confirmation result | Record it in `meta.md` and record the shown summary in `story.md`. |
|
|
93
|
+
| Provider policy ownership | Keep provider-specific details here instead of duplicating them across prompt files. |
|
|
94
|
+
| Maintenance trigger | Update this file when provider formats, supported tools, authentication expectations, or fallback policy changes. |
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Operational Rules
|
|
2
|
+
|
|
3
|
+
Use this artifact for project-operational rules that affect planning, implementation, review, or release. Keep enduring principles in `devspec/constitution.md`; keep product goals and scope boundaries in `project-context.md`.
|
|
4
|
+
|
|
5
|
+
## Rule Governance
|
|
6
|
+
|
|
7
|
+
| Boundary | Guidance |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Purpose | Record operational constraints, governance requirements, delivery gates, and evolving project rules. |
|
|
10
|
+
| Exclusions | Do not duplicate durable principles from `devspec/constitution.md` or product intent from `project-context.md`. |
|
|
11
|
+
| Record quality | Write actionable records with scope, enforcement point, source, and confidence. |
|
|
12
|
+
| Optional content | Omit rows or sections that have no project-specific content. |
|
|
13
|
+
|
|
14
|
+
## Operational Rule Catalog
|
|
15
|
+
|
|
16
|
+
Use this section for hard constraints, compliance requirements, and forbidden patterns. Use `Type` to distinguish the rule kind instead of creating separate overlapping sections.
|
|
17
|
+
|
|
18
|
+
| Type | Rule | Scope | Requirement or prohibition | Enforcement point | Evidence, rationale, or preferred alternative | Source | Confidence |
|
|
19
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
20
|
+
| hard constraint | <rule-name> | <system-or-work-scope> | <must-do-or-must-not-do> | <planning-implementation-review-release> | <why-or-how-to-apply> | <source-or-user-input> | confirmed |
|
|
21
|
+
| compliance requirement | <requirement-name> | <data-system-or-work-type> | <action-required> | <planning-implementation-review-release> | <evidence-or-policy-source> | <source-or-user-input> | confirmed |
|
|
22
|
+
| forbidden pattern | <pattern-name> | <system-or-work-scope> | <pattern-or-practice-to-avoid> | <planning-implementation-review-release> | <risk-or-preferred-alternative> | <source-or-user-input> | confirmed |
|
|
23
|
+
|
|
24
|
+
## Delivery Gate Catalog
|
|
25
|
+
|
|
26
|
+
| Gate | Applies to | Required evidence | Blocking condition | Source | Confidence |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| <gate-name> | <work-type-or-release-stage> | <validation-or-approval-required> | <what-blocks-completion> | <source-or-user-input> | confirmed |
|
|
29
|
+
|
|
30
|
+
## Work-Item Handling Rules
|
|
31
|
+
|
|
32
|
+
Use this section for rules that vary by work-item type or workflow stage. These defaults apply unless a stricter project-specific rule or delivery gate supersedes them.
|
|
33
|
+
|
|
34
|
+
| Work-item type | Stage | Requirement |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| bug | Intake and readiness | Capture expected behavior, actual behavior, reproduction steps, impact, and regression context unless blocked. |
|
|
37
|
+
| bug | Planning | Include reproduce, fix, and regression-validation work when practical. |
|
|
38
|
+
| bug | Implementation | Record regression validation and useful before-and-after snippets for code fixes. |
|
|
39
|
+
| bug | Review | Review bugs with meaningful regression risk before closure. |
|
|
40
|
+
| security-vulnerability | Intake and readiness | Capture severity, affected scope, attack surface, exploitability, disclosure status, and containment or remediation plan. |
|
|
41
|
+
| security-vulnerability | Shared artifacts | Minimize or redact sensitive exploit details when full disclosure is unsafe. |
|
|
42
|
+
| security-vulnerability | Planning | Include impact confirmation, remediation, supported-version verification, and follow-up needs when applicable. |
|
|
43
|
+
| security-vulnerability | Implementation | Verify remediation across affected supported versions and record backport, release, or advisory follow-up. |
|
|
44
|
+
| security-vulnerability | Review | Review security vulnerabilities before closure. |
|
|
45
|
+
| all | Review | Check scope adherence, bugs, regressions, missing validation, and rule violations against the finalized brief. |
|
|
46
|
+
| all | Changes requested | Route the work item back to implementation before marking it complete. |
|
|
47
|
+
|
|
48
|
+
## Exceptions and Waivers
|
|
49
|
+
|
|
50
|
+
Include this section only when exception handling differs from the normal rules or gates.
|
|
51
|
+
|
|
52
|
+
| Exception | Affected rule or gate | Approval or handling process | Status | Source |
|
|
53
|
+
| --- | --- | --- | --- | --- |
|
|
54
|
+
| <exception-name> | <rule-or-gate-id> | <approval-process-or-compensating-control> | open | <source-or-user-input> |
|