@wefter/opencode 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -25
- package/LICENSE +21 -21
- package/README.md +126 -125
- package/bin/wefter.js +8 -8
- package/docs/ARCHITECTURE.md +75 -75
- package/docs/INSTALLATION.md +47 -47
- package/docs/SAFETY_MODEL.md +17 -17
- package/docs/SELF_AUDIT.md +37 -35
- package/docs/WORKFLOWS.md +17 -15
- package/package.json +45 -45
- package/schemas/documentation-audit-profile.schema.json +55 -55
- package/schemas/product-shaping-config.schema.json +63 -63
- package/schemas/product-shaping-contract.schema.json +204 -204
- package/schemas/product-shaping-profile.schema.json +39 -39
- package/schemas/product-shaping-run-manifest.schema.json +103 -103
- package/schemas/run-manifest.schema.json +14 -14
- package/schemas/wefter.config.schema.json +62 -62
- package/schemas/work-unit-config.schema.json +51 -44
- package/schemas/work-unit-profile.schema.json +38 -38
- package/schemas/work-unit-review-result.schema.json +13 -13
- package/schemas/workflow-manifest.schema.json +31 -21
- package/src/cli/main.js +2696 -2646
- package/src/workflows/documentation-audit/README.md +37 -37
- package/src/workflows/documentation-audit/templates/README.md.tmpl +47 -47
- package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-consolidator.md.tmpl +27 -27
- package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-orchestrator.md.tmpl +69 -65
- package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-profile-builder.md.tmpl +58 -58
- package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-audit-validator.md.tmpl +26 -26
- package/src/workflows/documentation-audit/templates/opencode/agent/wefter-doc-auditor.md.tmpl +31 -28
- package/src/workflows/documentation-audit/templates/opencode/skills/documentation-audit/SKILL.md.tmpl +39 -38
- package/src/workflows/documentation-audit/templates/prompts/auditor-prompt.md +98 -97
- package/src/workflows/documentation-audit/templates/prompts/consolidator-prompt.md +84 -84
- package/src/workflows/documentation-audit/templates/prompts/validator-prompt.md +92 -92
- package/src/workflows/documentation-audit/workflow.json +24 -24
- package/src/workflows/documentation-repair/README.md +11 -11
- package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repair-orchestrator.md.tmpl +33 -33
- package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repair-planner.md.tmpl +17 -17
- package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repair-reviewer.md.tmpl +17 -17
- package/src/workflows/documentation-repair/templates/opencode/agent/wefter-doc-repairer.md.tmpl +14 -14
- package/src/workflows/documentation-repair/templates/opencode/skills/documentation-repair/SKILL.md.tmpl +17 -17
- package/src/workflows/documentation-repair/templates/prompts/repair-apply-prompt.md +43 -43
- package/src/workflows/documentation-repair/templates/prompts/repair-plan-prompt.md +73 -73
- package/src/workflows/documentation-repair/templates/prompts/repair-review-prompt.md +47 -47
- package/src/workflows/documentation-repair/workflow.json +10 -10
- package/src/workflows/product-shaping/README.md +1245 -1245
- package/src/workflows/product-shaping/compatibility.md +33 -33
- package/src/workflows/product-shaping/contracts/product-spec-contract.json +250 -250
- package/src/workflows/product-shaping/templates/default-config.json +34 -34
- package/src/workflows/product-shaping/templates/default-profile.json +48 -48
- package/src/workflows/product-shaping/templates/documentation-audit/workflow-self-audit-auditor-prompt.md +117 -116
- package/src/workflows/product-shaping/templates/documentation-audit-profile.json +80 -80
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-auditor.md.tmpl +22 -22
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-domain-modeler.md.tmpl +31 -31
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-intake-analyst.md.tmpl +31 -31
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-orchestrator.md.tmpl +48 -48
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-reference-researcher.md.tmpl +29 -29
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-release-planner.md.tmpl +34 -34
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-repairer.md.tmpl +25 -25
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-shaper.md.tmpl +31 -31
- package/src/workflows/product-shaping/templates/opencode/agent/wefter-product-validator.md.tmpl +23 -23
- package/src/workflows/product-shaping/templates/opencode/skills/product-shaping/SKILL.md.tmpl +45 -45
- package/src/workflows/product-shaping/templates/prompts/domain-modeler-prompt.md +27 -27
- package/src/workflows/product-shaping/templates/prompts/intake-prompt.md +30 -30
- package/src/workflows/product-shaping/templates/prompts/product-auditor-prompt.md +53 -53
- package/src/workflows/product-shaping/templates/prompts/product-repairer-prompt.md +25 -25
- package/src/workflows/product-shaping/templates/prompts/product-shaper-prompt.md +26 -26
- package/src/workflows/product-shaping/templates/prompts/product-validator-prompt.md +55 -55
- package/src/workflows/product-shaping/templates/prompts/reference-research-prompt.md +25 -25
- package/src/workflows/product-shaping/templates/prompts/release-planner-prompt.md +34 -34
- package/src/workflows/product-shaping/workflow.json +33 -33
- package/src/workflows/technical-shaping/README.md +7 -5
- package/src/workflows/technical-shaping/workflow.json +14 -10
- package/src/workflows/work-unit-implementation/README.md +71 -71
- package/src/workflows/work-unit-implementation/templates/default-config.json +46 -46
- package/src/workflows/work-unit-implementation/templates/default-profile.json +57 -57
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-orchestrator.md.tmpl +62 -62
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-auditor.md.tmpl +26 -26
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-consolidator.md.tmpl +26 -26
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-repairer.md.tmpl +25 -25
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-plan-validator.md.tmpl +25 -25
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-planner.md.tmpl +27 -27
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-task-implementer.md.tmpl +30 -30
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-task-reviewer.md.tmpl +28 -28
- package/src/workflows/work-unit-implementation/templates/opencode/agent/wefter-work-unit-validator.md.tmpl +26 -26
- package/src/workflows/work-unit-implementation/templates/opencode/skills/work-unit-implementation/SKILL.md.tmpl +25 -25
- package/src/workflows/work-unit-implementation/templates/prompts/plan-auditor-prompt.md +89 -89
- package/src/workflows/work-unit-implementation/templates/prompts/plan-consolidator-prompt.md +64 -64
- package/src/workflows/work-unit-implementation/templates/prompts/plan-repairer-prompt.md +42 -42
- package/src/workflows/work-unit-implementation/templates/prompts/plan-validator-prompt.md +84 -84
- package/src/workflows/work-unit-implementation/templates/prompts/planner-prompt.md +150 -150
- package/src/workflows/work-unit-implementation/templates/prompts/task-implementation-prompt.md +57 -57
- package/src/workflows/work-unit-implementation/templates/prompts/task-review-prompt.md +69 -69
- package/src/workflows/work-unit-implementation/templates/prompts/work-unit-validator-prompt.md +50 -50
- package/src/workflows/work-unit-implementation/workflow.json +14 -14
package/docs/SAFETY_MODEL.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
# Safety Model
|
|
2
|
-
|
|
3
|
-
Wefter workflows are designed as gated loops, not free-form agent prompts.
|
|
4
|
-
|
|
5
|
-
Core rules:
|
|
6
|
-
|
|
7
|
-
- Detection and correction are separate workflows.
|
|
8
|
-
- Documentation audit agents must not edit source documentation.
|
|
9
|
-
- Documentation repair must plan before editing and pause on unresolved human decisions.
|
|
10
|
-
- Runtime artifacts are written under workflow-specific configured roots: legacy audit, repair and work-unit workflows default to `.audit/wefter/`, while product-shaping defaults to `.wefter/runs/`.
|
|
11
|
-
- Versioned workflow configuration is written under `.wefter/` by default.
|
|
12
|
-
- Paths are target-repository relative and must not contain `..`.
|
|
13
|
-
- Run directories are staged before becoming visible as final runs.
|
|
14
|
-
- OpenCode agent permissions restrict write access to configured artifact paths.
|
|
15
|
-
- Implementation work must be task-level, reviewed and validated before moving to the next work unit.
|
|
16
|
-
|
|
17
|
-
OpenCode must be restarted after installing or changing agents, skills or commands.
|
|
1
|
+
# Safety Model
|
|
2
|
+
|
|
3
|
+
Wefter workflows are designed as gated loops, not free-form agent prompts.
|
|
4
|
+
|
|
5
|
+
Core rules:
|
|
6
|
+
|
|
7
|
+
- Detection and correction are separate workflows.
|
|
8
|
+
- Documentation audit agents must not edit source documentation.
|
|
9
|
+
- Documentation repair must plan before editing and pause on unresolved human decisions.
|
|
10
|
+
- Runtime artifacts are written under workflow-specific configured roots: legacy audit, repair and work-unit workflows default to `.audit/wefter/`, while product-shaping defaults to `.wefter/runs/`.
|
|
11
|
+
- Versioned workflow configuration is written under `.wefter/` by default.
|
|
12
|
+
- Paths are target-repository relative and must not contain `..`.
|
|
13
|
+
- Run directories are staged before becoming visible as final runs.
|
|
14
|
+
- OpenCode agent permissions restrict write access to configured artifact paths.
|
|
15
|
+
- Implementation work must be task-level, reviewed and validated before moving to the next work unit.
|
|
16
|
+
|
|
17
|
+
OpenCode must be restarted after installing or changing agents, skills or commands.
|
package/docs/SELF_AUDIT.md
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
# Self Audit
|
|
2
|
-
|
|
3
|
-
Wefter can run `documentation-audit` against its own workflow source before publishing a workflow as available.
|
|
4
|
-
|
|
5
|
-
The CLI command generates the audit run and auditor prompts. It does not execute the prompts by itself; a documentation-audit orchestrator or agent must resume the generated run and complete the raw audit, consolidation and validation steps.
|
|
6
|
-
|
|
7
|
-
Use this pattern for any workflow-specific audit profile:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
node bin/wefter.js docs audit --profile-path <workflow-audit-profile.json> --run-name <workflow-id>-self-audit --passes-per-lens 1 --max-audits 0
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
`--max-audits 0` means no audit prompt cap.
|
|
14
|
-
|
|
15
|
-
Product-shaping example:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
node bin/wefter.js docs audit --profile-path src/workflows/product-shaping/templates/documentation-audit-profile.json --run-name product-shaping-self-audit --passes-per-lens 1 --max-audits 0
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
# Self Audit
|
|
2
|
+
|
|
3
|
+
Wefter can run `documentation-audit` against its own workflow source before publishing a workflow as available.
|
|
4
|
+
|
|
5
|
+
The CLI command generates the audit run and auditor prompts. It does not execute the prompts by itself; a documentation-audit orchestrator or agent must resume the generated run and complete the raw audit, consolidation and validation steps.
|
|
6
|
+
|
|
7
|
+
Use this pattern for any workflow-specific audit profile:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node bin/wefter.js docs audit --profile-path <workflow-audit-profile.json> --run-name <workflow-id>-self-audit --passes-per-lens 1 --max-audits 0
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`--max-audits 0` means no audit prompt cap.
|
|
14
|
+
|
|
15
|
+
Product-shaping example:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node bin/wefter.js docs audit --profile-path src/workflows/product-shaping/templates/documentation-audit-profile.json --run-name product-shaping-self-audit --passes-per-lens 1 --max-audits 0
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The Wefter repository dogfoods documentation-audit with `artifactRoot` set to `.wefter/runs/documentation-audit` in its local `wefter.config.json`. Installed projects use the public default `.audit/wefter/documentation-audit` unless their config overrides it.
|
|
22
|
+
|
|
23
|
+
Seed prompt:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Audit the current workflow release against CHANGELOG.md and the workflow README.
|
|
27
|
+
Focus on doctrine drift, missing runtime enforcement, handoff or gate bypasses, OpenCode execution gaps, schema/contract mismatch, weak tests and release artifacts that should not be committed.
|
|
28
|
+
Treat prior review findings as hypotheses, not conclusions.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
After the run is generated, resume it with:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
Resume the documentation audit run at .wefter/runs/documentation-audit/<run-id>.
|
|
35
|
+
Read manifest.json, execute every auditor prompt listed there, write each raw output to its assigned path, then run prompts/consolidate.md and prompts/validate.md.
|
|
36
|
+
Do not edit source files. Write only under the run directory.
|
|
37
|
+
```
|
package/docs/WORKFLOWS.md
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
# Workflows
|
|
2
|
-
|
|
3
|
-
Wefter workflow IDs are stable nouns. CLI and OpenCode commands use verbs.
|
|
4
|
-
|
|
5
|
-
| Workflow ID | CLI | OpenCode | Status |
|
|
6
|
-
| --- | --- | --- | --- |
|
|
7
|
-
| `product-shaping` | `wefter product shape`, `wefter product validate` | `/wefter-shape-product` | Available |
|
|
8
|
-
| `documentation-audit` | `wefter docs audit` | `/wefter-audit-docs` | Available |
|
|
9
|
-
| `documentation-repair` | `wefter docs repair` | `/wefter-repair-docs` | Available |
|
|
10
|
-
| `technical-shaping` |
|
|
11
|
-
| `work-unit-implementation` | `wefter work-unit run`, `wefter work-unit guard` | `/wefter-run-work-unit` | Available |
|
|
12
|
-
|
|
13
|
-
The `0.2.0` release promotes `product-shaping` to available. `documentation-audit` remains executable end-to-end. `documentation-repair` can generate repair runs from final audit reports with planning, human-decision gates, repair application and review prompts. `work-unit-implementation` can generate planning runs, orchestrate plan review, enforce deterministic task/review guards and validate a completed work unit.
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
# Workflows
|
|
2
|
+
|
|
3
|
+
Wefter workflow IDs are stable nouns. CLI and OpenCode commands use verbs.
|
|
4
|
+
|
|
5
|
+
| Workflow ID | CLI | OpenCode | Status |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| `product-shaping` | `wefter product shape`, `wefter product validate` | `/wefter-shape-product` | Available |
|
|
8
|
+
| `documentation-audit` | `wefter docs audit` | `/wefter-audit-docs` | Available |
|
|
9
|
+
| `documentation-repair` | `wefter docs repair` | `/wefter-repair-docs` | Available |
|
|
10
|
+
| `technical-shaping` | Not installed while planned | Not installed while planned | Planned |
|
|
11
|
+
| `work-unit-implementation` | `wefter work-unit run`, `wefter work-unit guard` | `/wefter-run-work-unit` | Available |
|
|
12
|
+
|
|
13
|
+
The `0.2.0` release promotes `product-shaping` to available. `documentation-audit` remains executable end-to-end. `documentation-repair` can generate repair runs from final audit reports with planning, human-decision gates, repair application and review prompts. `work-unit-implementation` can generate planning runs, orchestrate plan review, enforce deterministic task/review guards and validate a completed work unit.
|
|
14
|
+
|
|
15
|
+
Planned workflows may document future command names in their workflow manifest, but only commands under `commands` are executable/installed. `technical-shaping` is intentionally not installed until its contract and CLI are implemented.
|
|
16
|
+
|
|
17
|
+
For workflow dogfooding and release self-audit, see `docs/SELF_AUDIT.md`.
|
package/package.json
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@wefter/opencode",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Installable Wefter workflows for OpenCode projects.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"repository": {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "git+
|
|
9
|
-
},
|
|
10
|
-
"bugs": {
|
|
11
|
-
"url": "https://github.com/Wuerike/wefter/issues"
|
|
12
|
-
},
|
|
13
|
-
"homepage": "https://github.com/Wuerike/wefter#readme",
|
|
14
|
-
"bin": {
|
|
15
|
-
"wefter": "bin/wefter.js"
|
|
16
|
-
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"check": "node --check bin/wefter.js && node --check src/cli/main.js",
|
|
19
|
-
"doctor:self": "node bin/wefter.js --help",
|
|
20
|
-
"test": "node --test"
|
|
21
|
-
},
|
|
22
|
-
"keywords": [
|
|
23
|
-
"opencode",
|
|
24
|
-
"wefter",
|
|
25
|
-
"documentation",
|
|
26
|
-
"audit",
|
|
27
|
-
"workflow",
|
|
28
|
-
"llm"
|
|
29
|
-
],
|
|
30
|
-
"license": "MIT",
|
|
31
|
-
"publishConfig": {
|
|
32
|
-
"access": "public"
|
|
33
|
-
},
|
|
34
|
-
"engines": {
|
|
35
|
-
"node": ">=18.17"
|
|
36
|
-
},
|
|
37
|
-
"files": [
|
|
38
|
-
"bin/",
|
|
39
|
-
"src/",
|
|
40
|
-
"schemas/",
|
|
41
|
-
"docs/",
|
|
42
|
-
"CHANGELOG.md",
|
|
43
|
-
"README.md"
|
|
44
|
-
]
|
|
45
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@wefter/opencode",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Installable Wefter workflows for OpenCode projects.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/Wuerike/wefter.git"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/Wuerike/wefter/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/Wuerike/wefter#readme",
|
|
14
|
+
"bin": {
|
|
15
|
+
"wefter": "bin/wefter.js"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"check": "node --check bin/wefter.js && node --check src/cli/main.js",
|
|
19
|
+
"doctor:self": "node bin/wefter.js --help",
|
|
20
|
+
"test": "node --test"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"opencode",
|
|
24
|
+
"wefter",
|
|
25
|
+
"documentation",
|
|
26
|
+
"audit",
|
|
27
|
+
"workflow",
|
|
28
|
+
"llm"
|
|
29
|
+
],
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=18.17"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"bin/",
|
|
39
|
+
"src/",
|
|
40
|
+
"schemas/",
|
|
41
|
+
"docs/",
|
|
42
|
+
"CHANGELOG.md",
|
|
43
|
+
"README.md"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://wefter.dev/schemas/documentation-audit-profile.schema.json",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"required": ["version", "corpus", "variants", "lenses"],
|
|
6
|
-
"properties": {
|
|
7
|
-
"version": { "const": 1 },
|
|
8
|
-
"auditorPromptPath": { "$ref": "#/$defs/relativePath" },
|
|
9
|
-
"corpus": {
|
|
10
|
-
"type": "object",
|
|
11
|
-
"required": ["include", "exclude"],
|
|
12
|
-
"properties": {
|
|
13
|
-
"include": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
14
|
-
"exclude": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
15
|
-
},
|
|
16
|
-
"additionalProperties": false
|
|
17
|
-
},
|
|
18
|
-
"variants": {
|
|
19
|
-
"type": "array",
|
|
20
|
-
"minItems": 1,
|
|
21
|
-
"items": {
|
|
22
|
-
"type": "object",
|
|
23
|
-
"required": ["id", "title", "instruction"],
|
|
24
|
-
"properties": {
|
|
25
|
-
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
|
|
26
|
-
"title": { "type": "string", "minLength": 1 },
|
|
27
|
-
"instruction": { "type": "string", "minLength": 1 }
|
|
28
|
-
},
|
|
29
|
-
"additionalProperties": false
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"lenses": {
|
|
33
|
-
"type": "array",
|
|
34
|
-
"minItems": 1,
|
|
35
|
-
"items": {
|
|
36
|
-
"type": "object",
|
|
37
|
-
"required": ["id", "title", "focus"],
|
|
38
|
-
"properties": {
|
|
39
|
-
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
|
|
40
|
-
"title": { "type": "string", "minLength": 1 },
|
|
41
|
-
"focus": { "type": "string", "minLength": 1 }
|
|
42
|
-
},
|
|
43
|
-
"additionalProperties": false
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"additionalProperties": false,
|
|
48
|
-
"$defs": {
|
|
49
|
-
"relativePath": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"minLength": 1,
|
|
52
|
-
"pattern": "^(?![A-Za-z]:)(?![\\\\/])(?!.*(?:^|/)\\.\\.(?:/|$))[^\\\\\r\n]+$"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://wefter.dev/schemas/documentation-audit-profile.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["version", "corpus", "variants", "lenses"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"version": { "const": 1 },
|
|
8
|
+
"auditorPromptPath": { "$ref": "#/$defs/relativePath" },
|
|
9
|
+
"corpus": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"required": ["include", "exclude"],
|
|
12
|
+
"properties": {
|
|
13
|
+
"include": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
14
|
+
"exclude": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
15
|
+
},
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
},
|
|
18
|
+
"variants": {
|
|
19
|
+
"type": "array",
|
|
20
|
+
"minItems": 1,
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"required": ["id", "title", "instruction"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
|
|
26
|
+
"title": { "type": "string", "minLength": 1 },
|
|
27
|
+
"instruction": { "type": "string", "minLength": 1 }
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": false
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"lenses": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"minItems": 1,
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"required": ["id", "title", "focus"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
|
|
40
|
+
"title": { "type": "string", "minLength": 1 },
|
|
41
|
+
"focus": { "type": "string", "minLength": 1 }
|
|
42
|
+
},
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"$defs": {
|
|
49
|
+
"relativePath": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1,
|
|
52
|
+
"pattern": "^(?![A-Za-z]:)(?![\\\\/])(?!.*(?:^|/)\\.\\.(?:/|$))[^\\\\\r\n]+$"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://wefter.dev/schemas/product-shaping-config.schema.json",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"required": ["version", "workflowName", "releaseId", "specRoot", "runRoot", "contractPath", "processDocPath", "requiredFiles", "completionGate"],
|
|
6
|
-
"properties": {
|
|
7
|
-
"version": { "const": 1 },
|
|
8
|
-
"workflowName": { "const": "product-shaping" },
|
|
9
|
-
"releaseId": { "type": "string", "minLength": 1 },
|
|
10
|
-
"specRoot": { "$ref": "#/$defs/relativePath", "default": ".wefter/specs" },
|
|
11
|
-
"runRoot": { "$ref": "#/$defs/relativePath", "default": ".wefter/runs/product-shaping" },
|
|
12
|
-
"contractPath": { "$ref": "#/$defs/relativePath" },
|
|
13
|
-
"processDocPath": { "$ref": "#/$defs/relativePath" },
|
|
14
|
-
"requiredFiles": {
|
|
15
|
-
"type": "array",
|
|
16
|
-
"minItems": 17,
|
|
17
|
-
"maxItems": 17,
|
|
18
|
-
"prefixItems": [
|
|
19
|
-
{ "const": "README.md" },
|
|
20
|
-
{ "const": "discovery/SOURCE_MATERIALS.md" },
|
|
21
|
-
{ "const": "discovery/IDEA_BRIEF.md" },
|
|
22
|
-
{ "const": "discovery/OPEN_QUESTIONS.md" },
|
|
23
|
-
{ "const": "references/README.md" },
|
|
24
|
-
{ "const": "PRODUCT_VISION.md" },
|
|
25
|
-
{ "const": "product/FEATURE_CATALOG.md" },
|
|
26
|
-
{ "const": "product/MODULE_ROADMAP.md" },
|
|
27
|
-
{ "const": "product/DOMAIN_MODEL.md" },
|
|
28
|
-
{ "const": "product/OPERATIONAL_FLOW.md" },
|
|
29
|
-
{ "const": "product/PRODUCT_DECISIONS.md" },
|
|
30
|
-
{ "const": "releases/README.md" },
|
|
31
|
-
{ "const": "releases/<release-id>/README.md" },
|
|
32
|
-
{ "const": "releases/<release-id>/SCOPE.md" },
|
|
33
|
-
{ "const": "releases/<release-id>/DOMAIN_SPEC.md" },
|
|
34
|
-
{ "const": "releases/<release-id>/ACCEPTANCE_CRITERIA.md" },
|
|
35
|
-
{ "const": "releases/<release-id>/DELIVERABLES.md" }
|
|
36
|
-
],
|
|
37
|
-
"items": false
|
|
38
|
-
},
|
|
39
|
-
"completionGate": {
|
|
40
|
-
"type": "object",
|
|
41
|
-
"required": ["requireNoReleaseBlockingQuestions", "requireAdversarialReview", "requireFinalValidation", "readyDeliverableStatuses"],
|
|
42
|
-
"properties": {
|
|
43
|
-
"requireNoReleaseBlockingQuestions": { "type": "boolean" },
|
|
44
|
-
"requireAdversarialReview": { "const": true },
|
|
45
|
-
"requireFinalValidation": { "const": true },
|
|
46
|
-
"readyDeliverableStatuses": {
|
|
47
|
-
"type": "array",
|
|
48
|
-
"minItems": 1,
|
|
49
|
-
"items": { "enum": ["ready"] }
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"additionalProperties": false
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"additionalProperties": false,
|
|
56
|
-
"$defs": {
|
|
57
|
-
"relativePath": {
|
|
58
|
-
"type": "string",
|
|
59
|
-
"minLength": 1,
|
|
60
|
-
"pattern": "^(?![A-Za-z]:)(?![\\\\/])(?!.*(?:^|/)\\.\\.(?:/|$))[^\\\\\r\n]+$"
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://wefter.dev/schemas/product-shaping-config.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["version", "workflowName", "releaseId", "specRoot", "runRoot", "contractPath", "processDocPath", "requiredFiles", "completionGate"],
|
|
6
|
+
"properties": {
|
|
7
|
+
"version": { "const": 1 },
|
|
8
|
+
"workflowName": { "const": "product-shaping" },
|
|
9
|
+
"releaseId": { "type": "string", "minLength": 1 },
|
|
10
|
+
"specRoot": { "$ref": "#/$defs/relativePath", "default": ".wefter/specs" },
|
|
11
|
+
"runRoot": { "$ref": "#/$defs/relativePath", "default": ".wefter/runs/product-shaping" },
|
|
12
|
+
"contractPath": { "$ref": "#/$defs/relativePath" },
|
|
13
|
+
"processDocPath": { "$ref": "#/$defs/relativePath" },
|
|
14
|
+
"requiredFiles": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"minItems": 17,
|
|
17
|
+
"maxItems": 17,
|
|
18
|
+
"prefixItems": [
|
|
19
|
+
{ "const": "README.md" },
|
|
20
|
+
{ "const": "discovery/SOURCE_MATERIALS.md" },
|
|
21
|
+
{ "const": "discovery/IDEA_BRIEF.md" },
|
|
22
|
+
{ "const": "discovery/OPEN_QUESTIONS.md" },
|
|
23
|
+
{ "const": "references/README.md" },
|
|
24
|
+
{ "const": "PRODUCT_VISION.md" },
|
|
25
|
+
{ "const": "product/FEATURE_CATALOG.md" },
|
|
26
|
+
{ "const": "product/MODULE_ROADMAP.md" },
|
|
27
|
+
{ "const": "product/DOMAIN_MODEL.md" },
|
|
28
|
+
{ "const": "product/OPERATIONAL_FLOW.md" },
|
|
29
|
+
{ "const": "product/PRODUCT_DECISIONS.md" },
|
|
30
|
+
{ "const": "releases/README.md" },
|
|
31
|
+
{ "const": "releases/<release-id>/README.md" },
|
|
32
|
+
{ "const": "releases/<release-id>/SCOPE.md" },
|
|
33
|
+
{ "const": "releases/<release-id>/DOMAIN_SPEC.md" },
|
|
34
|
+
{ "const": "releases/<release-id>/ACCEPTANCE_CRITERIA.md" },
|
|
35
|
+
{ "const": "releases/<release-id>/DELIVERABLES.md" }
|
|
36
|
+
],
|
|
37
|
+
"items": false
|
|
38
|
+
},
|
|
39
|
+
"completionGate": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"required": ["requireNoReleaseBlockingQuestions", "requireAdversarialReview", "requireFinalValidation", "readyDeliverableStatuses"],
|
|
42
|
+
"properties": {
|
|
43
|
+
"requireNoReleaseBlockingQuestions": { "type": "boolean" },
|
|
44
|
+
"requireAdversarialReview": { "const": true },
|
|
45
|
+
"requireFinalValidation": { "const": true },
|
|
46
|
+
"readyDeliverableStatuses": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"minItems": 1,
|
|
49
|
+
"items": { "enum": ["ready"] }
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"additionalProperties": false
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"$defs": {
|
|
57
|
+
"relativePath": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1,
|
|
60
|
+
"pattern": "^(?![A-Za-z]:)(?![\\\\/])(?!.*(?:^|/)\\.\\.(?:/|$))[^\\\\\r\n]+$"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|