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,49 @@
|
|
|
1
|
+
# Technology Stack
|
|
2
|
+
|
|
3
|
+
Use this artifact for technology, version, support, hosting, and delivery facts that affect implementation or validation decisions.
|
|
4
|
+
|
|
5
|
+
## Stack Documentation Policy
|
|
6
|
+
|
|
7
|
+
| Policy area | Requirement |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Evidence sources | Use manifests, lockfiles, framework config, CI config, infrastructure config, and docs as version evidence. |
|
|
10
|
+
| Discovery boundary | Do not inspect dependency folders, generated output, or excluded paths listed in `devspec/foundation/discovery-exclusions.md`. |
|
|
11
|
+
| Inventory scope | Use one stack inventory table per repository, deployable unit, or named project component. |
|
|
12
|
+
| Categories | Use clear categories such as `Language`, `Runtime`, `Framework`, `Library`, `Database`, `Service`, `Tooling`, `Hosting`, or `Delivery Constraint`. |
|
|
13
|
+
| Support status | Record support status from official release, lifecycle, or support pages when practical. |
|
|
14
|
+
| Unknown support | Use `no LTS channel`, `managed service`, or `unknown - needs lookup` instead of defaulting to `n/a`. |
|
|
15
|
+
| Not applicable support | Use `n/a` only when version support does not apply. |
|
|
16
|
+
| Verification date | Fill `Verified on` with the date the version or support status was checked. |
|
|
17
|
+
| Implementation impact | Include guidance when a technology affects coding, validation, hosting, compatibility, or support decisions. |
|
|
18
|
+
| Blocked facts | Record blocked stack, version, support, or hosting details as inventory rows with `blocked` confidence, the evidence gap, and the next action. |
|
|
19
|
+
| Row quality | Omit rows for technologies that are not confirmed, observed, inferred, or blocked by a specific evidence gap. |
|
|
20
|
+
|
|
21
|
+
## Stack Inventory
|
|
22
|
+
|
|
23
|
+
### Project: <project-name>
|
|
24
|
+
|
|
25
|
+
| Category | Technology | Project version or configuration | Support status | Evidence | Confidence | Verified on | Implementation impact or next action |
|
|
26
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
27
|
+
| Runtime | <runtime> | <version> | <lts-version-or-status> | <manifest-or-doc-path> | observed | <yyyy-mm-dd> | <implementation-or-validation-impact> |
|
|
28
|
+
| Framework | <framework> | <version> | <lts-version-or-status> | <manifest-or-config-path> | observed | <yyyy-mm-dd> | <implementation-or-validation-impact> |
|
|
29
|
+
| Service | <service-or-platform> | <version-or-managed-plan> | <managed-service-or-support-status> | <config-or-doc-path> | observed | <yyyy-mm-dd> | <implementation-or-validation-impact> |
|
|
30
|
+
| Delivery Constraint | <blocked-or-unknown-stack-fact> | unknown | unknown - needs lookup | <missing-or-inconclusive-evidence> | blocked | <yyyy-mm-dd> | <next-action-needed> |
|
|
31
|
+
|
|
32
|
+
## Support Lifecycle References
|
|
33
|
+
|
|
34
|
+
Maintain this lookup with official release, lifecycle, or support pages. Update these sources when a project uses a different vendor distribution or a better official endpoint becomes available.
|
|
35
|
+
|
|
36
|
+
| Technology or ecosystem | Official source | Lookup guidance | Verified on |
|
|
37
|
+
| --- | --- | --- | --- |
|
|
38
|
+
| Node.js | https://nodejs.org/en/about/releases/ | Use active or maintenance LTS release lines. | 2026-05-20 |
|
|
39
|
+
| Python | https://devguide.python.org/versions/ | Use supported Python versions; Python does not label releases as LTS. | 2026-05-20 |
|
|
40
|
+
| Java SE | https://www.oracle.com/java/technologies/java-se-support-roadmap.html | Use the vendor-supported LTS line relevant to the chosen JDK distribution. | 2026-05-20 |
|
|
41
|
+
| .NET | https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core | Use releases marked LTS by Microsoft. | 2026-05-20 |
|
|
42
|
+
| Go | https://go.dev/doc/devel/release | Use the supported release policy; Go does not label releases as LTS. | 2026-05-20 |
|
|
43
|
+
| PHP | https://www.php.net/supported-versions | Use actively supported or security-supported PHP branches. | 2026-05-20 |
|
|
44
|
+
| Ruby | https://www.ruby-lang.org/en/downloads/branches/ | Use branches under normal or security maintenance; Ruby does not label releases as LTS. | 2026-05-20 |
|
|
45
|
+
| Angular | https://angular.dev/reference/releases | Use versions marked active or LTS by Angular. | 2026-05-20 |
|
|
46
|
+
| React | https://react.dev/community/versioning-policy | Use React release policy and security maintenance notes; React does not label releases as LTS. | 2026-05-20 |
|
|
47
|
+
| Next.js | https://nextjs.org/support-policy | Use versions covered by the official support policy and LTS policy. | 2026-05-20 |
|
|
48
|
+
| Vite | https://vite.dev/releases | Use the official release policy; Vite does not label releases as LTS. | 2026-05-20 |
|
|
49
|
+
| Laravel | https://laravel.com/docs/releases | Use the official support policy table for bug-fix and security-fix windows. | 2026-05-20 |
|
|
@@ -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,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,33 @@
|
|
|
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 | | | |
|
|
10
|
+
| Problem | | | |
|
|
11
|
+
| Target outcome | | | |
|
|
12
|
+
|
|
13
|
+
## Audiences and Stakeholders
|
|
14
|
+
|
|
15
|
+
| Group | Category | Need or responsibility | Source | Confidence |
|
|
16
|
+
| --- | --- | --- | --- | --- |
|
|
17
|
+
| | | | | |
|
|
18
|
+
|
|
19
|
+
## Outcomes and Scope
|
|
20
|
+
|
|
21
|
+
Use this section for product goals, explicit scope exclusions, and measurable success signals. Keep operational rules and delivery gates in `rules.md`.
|
|
22
|
+
|
|
23
|
+
| Type | Outcome, boundary, or metric | Implementation implication | Source | Confidence |
|
|
24
|
+
| --- | --- | --- | --- | --- |
|
|
25
|
+
| | | | | |
|
|
26
|
+
|
|
27
|
+
## Delivery Context
|
|
28
|
+
|
|
29
|
+
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`.
|
|
30
|
+
|
|
31
|
+
| Type | Context item | Scope | Required handling or next step | Source | Confidence | Status |
|
|
32
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
33
|
+
| | | | | | | |
|
|
@@ -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,52 @@
|
|
|
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
|
+
| | | | | | | | |
|
|
21
|
+
|
|
22
|
+
## Delivery Gate Catalog
|
|
23
|
+
|
|
24
|
+
| Gate | Applies to | Required evidence | Blocking condition | Source | Confidence |
|
|
25
|
+
| --- | --- | --- | --- | --- | --- |
|
|
26
|
+
| | | | | | |
|
|
27
|
+
|
|
28
|
+
## Work-Item Handling Rules
|
|
29
|
+
|
|
30
|
+
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.
|
|
31
|
+
|
|
32
|
+
| Work-item type | Stage | Requirement |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
| bug | Intake and readiness | Capture expected behavior, actual behavior, reproduction steps, impact, and regression context unless blocked. |
|
|
35
|
+
| bug | Planning | Include reproduce, fix, and regression-validation work when practical. |
|
|
36
|
+
| bug | Implementation | Record regression validation and useful before-and-after snippets for code fixes. |
|
|
37
|
+
| bug | Review | Review bugs with meaningful regression risk before closure. |
|
|
38
|
+
| security-vulnerability | Intake and readiness | Capture severity, affected scope, attack surface, exploitability, disclosure status, and containment or remediation plan. |
|
|
39
|
+
| security-vulnerability | Shared artifacts | Minimize or redact sensitive exploit details when full disclosure is unsafe. |
|
|
40
|
+
| security-vulnerability | Planning | Include impact confirmation, remediation, supported-version verification, and follow-up needs when applicable. |
|
|
41
|
+
| security-vulnerability | Implementation | Verify remediation across affected supported versions and record backport, release, or advisory follow-up. |
|
|
42
|
+
| security-vulnerability | Review | Review security vulnerabilities before closure. |
|
|
43
|
+
| all | Review | Check scope adherence, bugs, regressions, missing validation, and rule violations against the finalized brief. |
|
|
44
|
+
| all | Changes requested | Route the work item back to implementation before marking it complete. |
|
|
45
|
+
|
|
46
|
+
## Exceptions and Waivers
|
|
47
|
+
|
|
48
|
+
Include this section only when exception handling differs from the normal rules or gates.
|
|
49
|
+
|
|
50
|
+
| Exception | Affected rule or gate | Approval or handling process | Status | Source |
|
|
51
|
+
| --- | --- | --- | --- | --- |
|
|
52
|
+
| | | | open | |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Technology Stack
|
|
2
|
+
|
|
3
|
+
Use this artifact for technology, version, support, hosting, and delivery facts that affect implementation or validation decisions.
|
|
4
|
+
|
|
5
|
+
## Stack Documentation Policy
|
|
6
|
+
|
|
7
|
+
| Policy area | Requirement |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Evidence sources | Use manifests, lockfiles, framework config, CI config, infrastructure config, and docs as version evidence. |
|
|
10
|
+
| Discovery boundary | Do not inspect dependency folders, generated output, or excluded paths listed in `devspec/foundation/discovery-exclusions.md`. |
|
|
11
|
+
| Inventory scope | Use one stack inventory table per repository, deployable unit, or named project component. |
|
|
12
|
+
| Categories | Use clear categories such as `Language`, `Runtime`, `Framework`, `Library`, `Database`, `Service`, `Tooling`, `Hosting`, or `Delivery Constraint`. |
|
|
13
|
+
| Support status | Record support status from official release, lifecycle, or support pages when practical. |
|
|
14
|
+
| Unknown support | Use `no LTS channel`, `managed service`, or `unknown - needs lookup` instead of defaulting to `n/a`. |
|
|
15
|
+
| Not applicable support | Use `n/a` only when version support does not apply. |
|
|
16
|
+
| Verification date | Fill `Verified on` with the date the version or support status was checked. |
|
|
17
|
+
| Implementation impact | Include guidance when a technology affects coding, validation, hosting, compatibility, or support decisions. |
|
|
18
|
+
| Blocked facts | Record blocked stack, version, support, or hosting details as inventory rows with `blocked` confidence, the evidence gap, and the next action. |
|
|
19
|
+
| Row quality | Omit rows for technologies that are not confirmed, observed, inferred, or blocked by a specific evidence gap. |
|
|
20
|
+
|
|
21
|
+
## Stack Inventory
|
|
22
|
+
|
|
23
|
+
### Project: <project-name>
|
|
24
|
+
|
|
25
|
+
| Category | Technology | Project version or configuration | Support status | Evidence | Confidence | Verified on | Implementation impact or next action |
|
|
26
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
27
|
+
| Runtime | <runtime> | <version> | <lts-version-or-status> | <manifest-or-doc-path> | observed | <yyyy-mm-dd> | <implementation-or-validation-impact> |
|
|
28
|
+
| Framework | <framework> | <version> | <lts-version-or-status> | <manifest-or-config-path> | observed | <yyyy-mm-dd> | <implementation-or-validation-impact> |
|
|
29
|
+
| Service | <service-or-platform> | <version-or-managed-plan> | <managed-service-or-support-status> | <config-or-doc-path> | observed | <yyyy-mm-dd> | <implementation-or-validation-impact> |
|
|
30
|
+
| Delivery Constraint | <blocked-or-unknown-stack-fact> | unknown | unknown - needs lookup | <missing-or-inconclusive-evidence> | blocked | <yyyy-mm-dd> | <next-action-needed> |
|
|
31
|
+
|
|
32
|
+
## Support Lifecycle References
|
|
33
|
+
|
|
34
|
+
Maintain this lookup with official release, lifecycle, or support pages. Update these sources when a project uses a different vendor distribution or a better official endpoint becomes available.
|
|
35
|
+
|
|
36
|
+
| Technology or ecosystem | Official source | Lookup guidance | Verified on |
|
|
37
|
+
| --- | --- | --- | --- |
|
|
38
|
+
| Node.js | https://nodejs.org/en/about/releases/ | Use active or maintenance LTS release lines. | 2026-05-20 |
|
|
39
|
+
| Python | https://devguide.python.org/versions/ | Use supported Python versions; Python does not label releases as LTS. | 2026-05-20 |
|
|
40
|
+
| Java SE | https://www.oracle.com/java/technologies/java-se-support-roadmap.html | Use the vendor-supported LTS line relevant to the chosen JDK distribution. | 2026-05-20 |
|
|
41
|
+
| .NET | https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core | Use releases marked LTS by Microsoft. | 2026-05-20 |
|
|
42
|
+
| Go | https://go.dev/doc/devel/release | Use the supported release policy; Go does not label releases as LTS. | 2026-05-20 |
|
|
43
|
+
| PHP | https://www.php.net/supported-versions | Use actively supported or security-supported PHP branches. | 2026-05-20 |
|
|
44
|
+
| Ruby | https://www.ruby-lang.org/en/downloads/branches/ | Use branches under normal or security maintenance; Ruby does not label releases as LTS. | 2026-05-20 |
|
|
45
|
+
| Angular | https://angular.dev/reference/releases | Use versions marked active or LTS by Angular. | 2026-05-20 |
|
|
46
|
+
| React | https://react.dev/community/versioning-policy | Use React release policy and security maintenance notes; React does not label releases as LTS. | 2026-05-20 |
|
|
47
|
+
| Next.js | https://nextjs.org/support-policy | Use versions covered by the official support policy and LTS policy. | 2026-05-20 |
|
|
48
|
+
| Vite | https://vite.dev/releases | Use the official release policy; Vite does not label releases as LTS. | 2026-05-20 |
|
|
49
|
+
| Laravel | https://laravel.com/docs/releases | Use the official support policy table for bug-fix and security-fix windows. | 2026-05-20 |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Glossary
|
|
2
|
+
|
|
3
|
+
Use this file for shared devspec terms and status values.
|
|
4
|
+
|
|
5
|
+
Status values are scoped. Use a value only in the table named by the consuming artifact. When the same literal appears in more than one table, its meaning is limited to that table's context.
|
|
6
|
+
|
|
7
|
+
## Workflow State Values
|
|
8
|
+
|
|
9
|
+
Use these values to track command recovery, work-item lifecycle, and task execution. Do not use workflow state values as review or readiness decisions.
|
|
10
|
+
|
|
11
|
+
### Run Status Values
|
|
12
|
+
|
|
13
|
+
Use for the current command or agent run in a `Resume State` or `Workflow State` table.
|
|
14
|
+
|
|
15
|
+
| Status | Meaning |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| `active` | Work is in progress. |
|
|
18
|
+
| `waiting-for-user` | Work is paused until the user answers a recorded question. |
|
|
19
|
+
| `paused` | Work is intentionally paused and can resume from the recorded state. |
|
|
20
|
+
| `stopped` | Work stopped without an active resume path. |
|
|
21
|
+
| `blocked` | Required evidence, access, or context is missing. |
|
|
22
|
+
| `complete` | The stage or run is finished. |
|
|
23
|
+
|
|
24
|
+
### Work-Item Status Values
|
|
25
|
+
|
|
26
|
+
Use for the durable lifecycle of a work item in `meta.md`. Readiness, review outcomes, blockers, and run interruptions are recorded in their own fields or artifacts, not encoded into the work-item status.
|
|
27
|
+
|
|
28
|
+
| Status | Meaning |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| `intake` | Initial work-item capture is in progress. |
|
|
31
|
+
| `clarifying` | The item needs user or source clarification. |
|
|
32
|
+
| `finalized` | Scope is captured; readiness status records whether task planning may proceed. |
|
|
33
|
+
| `tasks-planned` | Implementation tasks are recorded. |
|
|
34
|
+
| `implementing` | Implementation is in progress. |
|
|
35
|
+
| `implemented` | Implementation is complete and awaiting review. |
|
|
36
|
+
| `reviewing` | Review is in progress. |
|
|
37
|
+
| `reviewed` | Review is complete. |
|
|
38
|
+
|
|
39
|
+
### Task Status Values
|
|
40
|
+
|
|
41
|
+
Use for executable implementation tasks and implementation task ledgers.
|
|
42
|
+
|
|
43
|
+
| Status | Meaning |
|
|
44
|
+
| --- | --- |
|
|
45
|
+
| `pending` | Not started. |
|
|
46
|
+
| `active` | In progress. |
|
|
47
|
+
| `paused` | Paused mid-task. |
|
|
48
|
+
| `blocked` | Cannot proceed until a blocker is resolved. |
|
|
49
|
+
| `complete` | Finished. |
|
|
50
|
+
| `skipped` | Intentionally not performed. |
|
|
51
|
+
|
|
52
|
+
## Decision Values
|
|
53
|
+
|
|
54
|
+
Use these values for gates and outcomes. They are decisions, not workflow progress markers.
|
|
55
|
+
|
|
56
|
+
### Readiness Status Values
|
|
57
|
+
|
|
58
|
+
Use for readiness gates and the overall readiness field. Overall readiness uses `ready` or `not ready`; individual gate rows may use `not applicable` when the gate does not apply.
|
|
59
|
+
|
|
60
|
+
| Status | Meaning |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| `ready` | Meets readiness gates. |
|
|
63
|
+
| `not ready` | Missing required information, approval, access, or evidence. |
|
|
64
|
+
| `not applicable` | The readiness gate does not apply to this work item. |
|
|
65
|
+
|
|
66
|
+
### Review Status Values
|
|
67
|
+
|
|
68
|
+
Use only for review outcomes.
|
|
69
|
+
|
|
70
|
+
| Status | Meaning |
|
|
71
|
+
| --- | --- |
|
|
72
|
+
| `approved` | Review found no required changes. |
|
|
73
|
+
| `approved-with-follow-ups` | Review passed with non-blocking follow-ups. |
|
|
74
|
+
| `changes-requested` | Review requires implementation changes. |
|
|
75
|
+
|
|
76
|
+
### Source Resolution Status Values
|
|
77
|
+
|
|
78
|
+
Use for intake provenance in `meta.md`.
|
|
79
|
+
|
|
80
|
+
| Status | Meaning |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| `resolved` | External source was found and confirmed. |
|
|
83
|
+
| `manual` | User chose manual intake without external resolution. |
|
|
84
|
+
| `blocked` | Source resolution is required but unavailable or invalid. |
|
|
85
|
+
|
|
86
|
+
### Artifact Status Values
|
|
87
|
+
|
|
88
|
+
Use for generated or queued devspec artifacts, including architecture diagram queue rows.
|
|
89
|
+
|
|
90
|
+
| Status | Meaning |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| `proposed` | Candidate identified from evidence. |
|
|
93
|
+
| `confirmed` | User approved generation, not yet generated. |
|
|
94
|
+
| `generated` | Artifact was added to the target location. |
|
|
95
|
+
| `skipped` | User declined generation. |
|
|
96
|
+
| `blocked` | Evidence or context is insufficient. |
|
|
97
|
+
|
|
98
|
+
## Access Values
|
|
99
|
+
|
|
100
|
+
### Access Requirement Values
|
|
101
|
+
|
|
102
|
+
Use for repository access requirements in `devspec/foundation/codebase-structure.md` and task rows. Access values describe the allowed interaction with a repository; they are permissions for repository use, not task or run statuses. When a task needs more access than the repository value allows, stop and ask before changing scope.
|
|
103
|
+
|
|
104
|
+
| Value | Meaning |
|
|
105
|
+
| --- | --- |
|
|
106
|
+
| `reference-only` | Read or search the repository for context only; do not edit files, run validation, or treat the repository as a delivery target. |
|
|
107
|
+
| `edit` | File changes are allowed in this repository, but validation is not confirmed here; record any needed validation as a separate task, handoff, or blocker. |
|
|
108
|
+
| `edit-and-test` | File changes and validation commands are allowed in this repository; use for normal implementation targets where the agent may both modify and verify. |
|
|
109
|
+
| `validation-only` | Validation commands or manual checks are allowed, but file changes are not; use for smoke tests, compatibility checks, or downstream verification repos. |
|
|
110
|
+
| `release-coordination` | Track release, deployment, advisory, backport, or dependency coordination for this repository; do not edit or validate it without separate confirmation. |
|
|
111
|
+
| `unavailable` | The repository is required but cannot currently be accessed or used; record the impact as a blocker and do not rely on this repository until access is restored. |
|