Skip to content

Commit 5ddb81c

Browse files
committed
docs(product): align roadmap and workflow docs
1 parent 3f9d4ba commit 5ddb81c

5 files changed

Lines changed: 41 additions & 18 deletions

File tree

docs/design/agents.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# vstack — agents
22

33
> Maintained by: **designer** role\
4-
> Last updated: 2026-05-03\
4+
> Last updated: 2026-05-13\
55
> VS Code docs: [custom agents](https://code.visualstudio.com/docs/copilot/customization/custom-agents) · [agents overview](https://code.visualstudio.com/docs/copilot/agents/overview)
66
77
## what are agents?
@@ -24,6 +24,20 @@ Generation is mode-aware via `.vstack/config.yaml` `workflow.mode`:
2424
In `hybrid`, the UI exposes both progression paths (planner and handoff buttons).
2525
Use it only when your process explicitly allows both.
2626

27+
Planner orchestration also reads `workflow.stages[*].depends_on` when deciding which
28+
roles are ready. The generated agents remain VS Code custom agents, but the workflow
29+
controller can fan out independent stages in parallel when the DAG permits it.
30+
31+
```mermaid
32+
flowchart LR
33+
A[workflow.mode] --> B{mode}
34+
B -->|agentic| C[planner generated]
35+
B -->|manual| D[planner omitted]
36+
B -->|hybrid| E[planner generated + worker handoffs]
37+
C --> F[planner reads depends_on]
38+
F --> G[ready set / parallel branches]
39+
```
40+
2741
Canonical names are the source of truth. Historical or compatibility aliases should
2842
remain exceptional and temporary. See `docs/architecture/adr/002-artifact-naming-and-compatibility-policy.md`.
2943

docs/product/requirements.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ ______________________________________________________________________
9494

9595
- 6 delivery agent roles: `product`, `architect`, `designer`, `engineer`,
9696
`tester`, `release`, plus a `planner` coordinator agent.
97-
- 27 backend-oriented skills with canonical names enforced at source-verify time.
97+
- 42 skills across the role set with canonical names enforced at source-verify time.
9898

9999
### FR-11 — workflow mode semantics
100100

@@ -104,13 +104,20 @@ ______________________________________________________________________
104104
- In `manual`, planner is not generated and worker handoff buttons are shown.
105105
- In `hybrid`, planner is generated and worker handoff buttons are shown.
106106

107+
### FR-12 — workflow DAG semantics
108+
109+
- `workflow.stages[*].depends_on` is optional and declares explicit stage prerequisites.
110+
- When `depends_on` is omitted, the stage falls back to sequential dependency on the previous stage.
111+
- Invalid dependency references, self-dependencies, duplicate stage roles, and cycles are rejected.
112+
- In `agentic`, the planner may schedule multiple ready stages in parallel when the DAG permits it.
113+
107114
______________________________________________________________________
108115

109116
## non-functional requirements
110117

111118
| ID | Requirement |
112119
| ----- | ------------------------------------------------------------------------------------------------------ |
113-
| NFR-1 | No runtime dependencies beyond the Python standard library. |
120+
| NFR-1 | One runtime dependency only: PyYAML (`pyyaml>=6.0`) for YAML frontmatter parsing. |
114121
| NFR-2 | Python 3.11–3.14 compatibility. |
115122
| NFR-3 | Manifest writes are atomic: write to a temporary file, then replace atomically. |
116123
| NFR-4 | All public behavior exercised by automated tests (pytest). CI gate enforces test pass. |
@@ -129,7 +136,7 @@ ______________________________________________________________________
129136
1. `vstack verify --target DIR` reports zero errors on a clean install.
130137
1. `vstack validate` exits 0 when all source templates resolve cleanly.
131138
1. Locally modified tracked files are preserved on re-install by default (FR-4).
132-
1. All 27 canonical skill names are present after a full install.
139+
1. All 42 canonical skill names are present after a full install.
133140
1. `vstack manifest upgrade` migrates a legacy manifest without data loss.
134141

135142
______________________________________________________________________

docs/product/roadmap.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# vstack — roadmap
22

33
> Maintained by: **product** role\
4-
> Last updated: 2026-05-12
4+
> Last updated: 2026-05-13
55
66
______________________________________________________________________
77

@@ -29,7 +29,7 @@ ______________________________________________________________________
2929
| workflow contract source-of-truth | v3.1.0 | shipped | `workflow:` block in `.vstack/config.yaml`; `gate`, `hitl`, `handoffs` schema; `vstack migrate` command (ADR-023, ADR-026) |
3030
| agent hooks support | v3.2.0 | shipped | First-class `hook` artifact type: generate `.github/hooks/<name>.json` from templates and track in manifest |
3131
| optional orchestrated role pipeline | v3.2.0 | shipped | `planner` coordinator agent implemented with mode-aware generation; default mode is `agentic` (`manual` and `hybrid` also supported) |
32-
| parallel workflow via DAG model | v3.3.0 | shipped | `depends_on` DAG semantics shipped with validation and backward-compatible sequential defaults |
32+
| parallel workflow via DAG model | t.b.d. | candidate | `depends_on` DAG semantics implemented in code; awaiting a release tag before being promoted to shipped |
3333
| new skills (next batch) | t.b.d. | candidate | `spaces`: set up Copilot Spaces; `copilot-admin`: manage Copilot settings via `gh api` |
3434
| team customization layer | t.b.d. | candidate | Deferred major update after VS Code-first model proves itself; custompacks, overlay merge rules, and install profiles all add major maintenance surface |
3535
| multi-IDE support (IntelliJ first) | t.b.d. | candidate | Deferred until vstack proves stable in VS Code; likely a major follow-up because it needs separate targets, schemas, and more maintenance |
@@ -289,7 +289,7 @@ Not yet implemented (deferred to orchestrated pipeline milestone):
289289
- Generator-level cross-role validation of input/output chains
290290
- Central read-only contract export for external orchestrator consumption
291291

292-
### parallel workflow via DAG model [shippedv3.3.0]
292+
### parallel workflow via DAG model [candidatet.b.d.]
293293

294294
**What is DAG?** (Directed Acyclic Graph)
295295

@@ -350,7 +350,7 @@ product ████
350350

351351
Potential wall-clock reduction: 6 stages → 3 stages (~50% faster).
352352

353-
**Shipped scope in v3.3.0:**
353+
**Current scope:**
354354

355355
1. Dependency schema support in `.vstack/config.yaml` via optional `depends_on` per stage.
356356
1. DAG validation in CLI parsing and workflow graph checks.

docs/product/vision.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# vstack — vision
22

33
> Maintained by: **product** role\
4-
> Last updated: 2026-03-28
4+
> Last updated: 2026-05-13
55
66
## what is vstack
77

@@ -62,9 +62,9 @@ ______________________________________________________________________
6262
release) define who produces what. Each role owns a specific set of
6363
artifacts. Agents communicate through files on disk.
6464

65-
1. **Pipeline-ready.** Today each skill runs in a single model call. If needed later,
66-
the system can move to an orchestrated multi-role pipeline by adding a runner,
67-
without rewriting skills.
65+
1. **Pipeline-ready.** The planner/DAG orchestration model now handles multi-role
66+
execution inside VS Code. If coordination needs to evolve further, it should extend
67+
the existing workflow contract rather than forcing a rewrite of skills.
6868

6969
______________________________________________________________________
7070

docs/reports/test-report.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# Test Report
22

3-
**Branch:** `feat/workflow_update`\
4-
**Date:** 2026-05-06\
5-
**Scope:** Full repository — `.vstack/` project-scope directory (ADR-019); `vstack install`/`vstack init` command semantics (ADR-020); manifest relocation from `.github/` to `.vstack/` (ADR-021); selective install with `exclude:` filter (ADR-022); `artifacts.root` config override; `.vstack/.gitignore` seeding; agent `artifacts:` section generation; ADR terminology update (Option A/B → direct execution/orchestrated pipeline); roadmap cleanup (version column, candidate rationalisation); gh-issues skill MCP-first guidance. CLI refactor, manifest backfill, and test suite structure remain in scope as prior context.
3+
**Branch:** `feature/workflow-dag-validation`\
4+
**Date:** 2026-05-13\
5+
**Scope:** Full repository — workflow DAG semantics (`depends_on` validation, sequential fallback compatibility, planner-ready stage scheduling); agent parallel delegation policy; planner template orchestration; roadmap/version alignment; product/docs consistency updates; runtime version fallback fix; historical validation context retained for continuity.
66

77
______________________________________________________________________
88

99
## Verdict
1010

1111
| Dimension | Result |
1212
| ------------- | ------------------------------------------ |
13-
| Functional | **PASS**428/428 tests green |
13+
| Functional | **PASS**635/635 tests green |
1414
| Lint / Style | **PASS** — ruff clean |
1515
| Type checking | **PASS** — mypy clean (51 files, 0 errors) |
1616
| Coverage | **PASS** — 100.00% (fail-under=100) |
@@ -27,7 +27,7 @@ ______________________________________________________________________
2727
platform: linux, Python 3.13.12-final-0
2828
runner: pytest 9.0.3 + pytest-cov 7.1.0
2929
command: pytest -q
30-
428 passed in 5.90s
30+
635 passed in 21.03s
3131
```
3232

3333
All tests pass. No flaky, skipped, or xfail tests observed.
@@ -36,7 +36,7 @@ ______________________________________________________________________
3636

3737
## Coverage Summary
3838

39-
Total: 100.00% — 0 missed statements across 2,058 measured
39+
Total: 100.00% — 0 missed statements across 2,806 measured
4040

4141
`fail-under=100` is configured in `pyproject.toml`. This gate is **passing**.
4242

@@ -57,6 +57,8 @@ Blockage coverage findings were resolved by adding targeted unit tests for:
5757
- install/verify/uninstall error-path behavior
5858
- `manifest upgrade --backfill` branches: missing file, unreadable file, no VSTACK-META footer, existing checksum, unknown algorithm fallback
5959

60+
Recent additions also covered malformed `depends_on` inputs at parse and validation time so the workflow DAG no longer degrades silently when config types are wrong.
61+
6062
______________________________________________________________________
6163

6264
## Lint and Type Checking

0 commit comments

Comments
 (0)