@emiliosp/pi-maestro 0.7.0 → 0.7.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/README.md +7 -0
- package/changelog.md +85 -0
- package/mission.md +7 -0
- package/package.json +5 -1
- package/roadmap.md +85 -0
- package/tech-stack.md +14 -0
package/README.md
CHANGED
|
@@ -97,3 +97,10 @@ The reading order is:
|
|
|
97
97
|
2. [Workflow](docs/workflow.md): approvals, decisions, and how each run produces artifacts.
|
|
98
98
|
3. [Configuration](docs/configuration.md): project paths, models, and timeouts.
|
|
99
99
|
4. [Subagent integration](docs/subagent-integration.md): agent context, execution, and activity tracking.
|
|
100
|
+
|
|
101
|
+
## Project constitution
|
|
102
|
+
|
|
103
|
+
1. [Mission](mission.md): purpose, scope, and owner responsibilities.
|
|
104
|
+
2. [Tech stack](tech-stack.md): runtime technologies and development tools.
|
|
105
|
+
3. [Roadmap](roadmap.md): completed outcomes and planned priorities.
|
|
106
|
+
4. [Changelog](changelog.md): meaningful codebase changes and breaking contracts.
|
package/changelog.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
This file summarizes meaningful changes to the codebase, including behavior, contracts, architecture, and development tools. Git tags identify version boundaries; GitHub Releases are not required. Version-only changes and routine maintenance are omitted.
|
|
4
|
+
|
|
5
|
+
## 0.7.1
|
|
6
|
+
|
|
7
|
+
1. Documented the project mission, current tech stack, owner responsibilities, roadmap, and codebase change history. See [PR #30](https://github.com/emilioSp/pi-maestro/pull/30).
|
|
8
|
+
2. Replaced `TODO.md` with the roadmap and included the four project constitution documents in the npm package.
|
|
9
|
+
3. Updated documentation audits to compare all current documentation and the project constitution with the working tree without requesting a comparison baseline.
|
|
10
|
+
|
|
11
|
+
## 0.7.0
|
|
12
|
+
|
|
13
|
+
1. Stored multiple escalation questions and owner resolutions inside numbered builder handoffs. Earlier handoffs remain available as history. See [PR #27](https://github.com/emilioSp/pi-maestro/pull/27).
|
|
14
|
+
2. Breaking: replaced `maestro_open_escalation` and `maestro_resolve_escalation` with `maestro_record_builder_handoff` and `maestro_resolve_escalations`. Done handoffs require `escalations: []`. Standalone escalation storage was removed without migration or compatibility readers. Artifact versions remain `1.0.0`.
|
|
15
|
+
3. Added LCOV coverage reports and Codecov uploads from CI. See [PR #28](https://github.com/emilioSp/pi-maestro/pull/28).
|
|
16
|
+
|
|
17
|
+
Reload Maestro extensions before starting new workflows so sessions use the new tool contracts.
|
|
18
|
+
|
|
19
|
+
## 0.6.2
|
|
20
|
+
|
|
21
|
+
Added phase icons, theme colors, and display-only shortening of long spec IDs. Successful activation shows the configured agent settings in a UI-only notice, outside session history and model context. See [PR #26](https://github.com/emilioSp/pi-maestro/pull/26).
|
|
22
|
+
|
|
23
|
+
## 0.6.0
|
|
24
|
+
|
|
25
|
+
1. Removed Git requirements, checkpoints, and automatic commits from the workflow. Maestro uses Pi's project directory and saved workflow phase. See [PR #25](https://github.com/emilioSp/pi-maestro/pull/25).
|
|
26
|
+
2. Retained numbered builder and verifier handoffs and explicit owner finding decisions. Removed workflow revision counters and writer locks.
|
|
27
|
+
3. Breaking: changed artifact contracts, handoff paths, and tool results without migration or compatibility readers. Removed revision and commit fields. Artifact versions remain `1.0.0`. Interrupted and older workflows require manual owner handling.
|
|
28
|
+
|
|
29
|
+
## 0.5.2
|
|
30
|
+
|
|
31
|
+
Reverted the spec question-dependency instructions introduced in `0.5.1`. See [commit 13cad11](https://github.com/emilioSp/pi-maestro/commit/13cad11).
|
|
32
|
+
|
|
33
|
+
## 0.5.1
|
|
34
|
+
|
|
35
|
+
Added instructions to resolve prerequisite decisions before asking dependent spec questions and to review unresolved decisions before approval. These instructions were reverted in `0.5.2`.
|
|
36
|
+
|
|
37
|
+
## 0.5.0
|
|
38
|
+
|
|
39
|
+
Removed breakage checks from specs, handoffs, validation, and agent instructions. Breakage checks temporarily introduced faults to test error detection. Acceptance criteria retain probes, expected results, and concrete examples. See [PR #24](https://github.com/emilioSp/pi-maestro/pull/24).
|
|
40
|
+
|
|
41
|
+
Breaking: handoffs no longer accept `breakageStatus`. Older handoffs containing that field must be regenerated. Artifact versions remain `1.0.0`.
|
|
42
|
+
|
|
43
|
+
## 0.4.5
|
|
44
|
+
|
|
45
|
+
Required a concrete example in every acceptance criterion, both in the spec and when presenting it to the owner. Examples identify starting conditions, an action, and the expected observable result.
|
|
46
|
+
|
|
47
|
+
## 0.4.4
|
|
48
|
+
|
|
49
|
+
Expanded Maestro's explanations of findings and escalations with code evidence, concrete examples, available choices, and their consequences. The owner retains control of each decision.
|
|
50
|
+
|
|
51
|
+
## 0.4.3
|
|
52
|
+
|
|
53
|
+
Removed explicit builder and verifier tool allowlists and enabled inherited skills. Workflow boundaries remain defined by agent instructions.
|
|
54
|
+
|
|
55
|
+
## 0.4.2
|
|
56
|
+
|
|
57
|
+
Made breakage checks optional when the approved spec did not require them. Required acceptance probes remained mandatory. Breakage checks were later removed in `0.5.0`. See [PR #23](https://github.com/emilioSp/pi-maestro/pull/23).
|
|
58
|
+
|
|
59
|
+
## 0.4.1
|
|
60
|
+
|
|
61
|
+
Enabled inheritance of global instructions for builder and verifier agents, alongside project context.
|
|
62
|
+
|
|
63
|
+
## 0.4.0
|
|
64
|
+
|
|
65
|
+
1. Fixed delegated handoffs that depended on unavailable parent session memory. See [PR #22](https://github.com/emilioSp/pi-maestro/pull/22).
|
|
66
|
+
2. Removed hash-based spec guards and checkpoint-based verifier comparisons. Spec preservation and restoration rely on agent instructions.
|
|
67
|
+
3. Refreshed the running status before delegation and required repository investigation before presenting technical decisions during spec preparation.
|
|
68
|
+
|
|
69
|
+
## 0.3.0
|
|
70
|
+
|
|
71
|
+
Clarified Maestro, builder, and verifier responsibilities, spec and prototype revisions, permitted experiments, evidence requirements, and cleanup. See [PR #21](https://github.com/emilioSp/pi-maestro/pull/21).
|
|
72
|
+
|
|
73
|
+
## 0.2.0
|
|
74
|
+
|
|
75
|
+
Moved TypeBox to peer dependencies and loosened Pi peer dependency version constraints. Kept `pi-subagents` bundled with the package.
|
|
76
|
+
|
|
77
|
+
## 0.1.2
|
|
78
|
+
|
|
79
|
+
Pinned verifier comparisons to a fixed candidate checkpoint rather than the current HEAD's parent. This checkpoint mechanism was later removed in `0.4.0`. See [PR #20](https://github.com/emilioSp/pi-maestro/pull/20).
|
|
80
|
+
|
|
81
|
+
Breaking: renamed `maestro_launch_builder` and `maestro_launch_verifier` to `maestro_run_builder` and `maestro_run_verifier`. Renamed the corresponding workflow events from `launch-*` to `run-*`.
|
|
82
|
+
|
|
83
|
+
## 0.1.1
|
|
84
|
+
|
|
85
|
+
First tagged baseline with `/maestro`, spec creation and approval, and foreground builder and verifier runs. The owner decides escalation questions and verifier findings. The workflow ends at `candidate-ready`, leaving final review to the owner. See [PR #14](https://github.com/emilioSp/pi-maestro/pull/14) and [PR #13](https://github.com/emilioSp/pi-maestro/pull/13).
|
package/mission.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Mission
|
|
2
|
+
|
|
3
|
+
Maestro uses spec-driven development to improve quality when coding with agents. It guides the owner to define requirements and think through a feature before writing code.
|
|
4
|
+
It provides a clear path from an approved spec to verified code and manages agent coordination for the owner.
|
|
5
|
+
|
|
6
|
+
The owner remains responsible for final code review, pull requests, and merging. The owner also provides and maintains the project's development checks and instructions, including linters, tests, anti-slop checks, and `AGENTS.md`.
|
|
7
|
+
Maestro and its agents use these checks and instructions.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emiliosp/pi-maestro",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "A spec-driven multiagent development workflow for Pi.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -33,6 +33,10 @@
|
|
|
33
33
|
"src/",
|
|
34
34
|
"!**/*.test.ts",
|
|
35
35
|
"docs/",
|
|
36
|
+
"mission.md",
|
|
37
|
+
"tech-stack.md",
|
|
38
|
+
"roadmap.md",
|
|
39
|
+
"changelog.md",
|
|
36
40
|
"README.md",
|
|
37
41
|
"LICENSE"
|
|
38
42
|
],
|
package/roadmap.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
This roadmap records planned outcomes, not permission to implement them. The owner selects work and approves its specification before implementation starts. Detailed requirements, technical decisions, and acceptance criteria belong in that specification.
|
|
4
|
+
|
|
5
|
+
"Now" is the current priority. "Next" follows it. “Later” contains uncommitted ideas with no promised order or date.
|
|
6
|
+
|
|
7
|
+
Item identifiers remain stable when priorities change. The owner approves changes to priorities and scope.
|
|
8
|
+
|
|
9
|
+
## Completed
|
|
10
|
+
|
|
11
|
+
### R-01: Improve status presentation and activation feedback
|
|
12
|
+
|
|
13
|
+
The status bar uses phase icons, theme colors, and shortened spec IDs. Successful activation shows the configured builder and verifier settings without adding the notice to session history or model context. All 12 acceptance criteria passed with no verifier findings; the saved workflow reached `candidate-ready`.
|
|
14
|
+
|
|
15
|
+
Evidence: [Specification](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/spec.md), [verifier report](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/handoffs/verifier/V1.json), and [merged PR #26](https://github.com/emilioSp/pi-maestro/pull/26).
|
|
16
|
+
|
|
17
|
+
### R-02: Store escalations and owner decisions in builder handoffs
|
|
18
|
+
|
|
19
|
+
Numbered builder handoffs contain multiple escalation questions and their owner resolutions. The owner resolves all current questions in one batch, while earlier handoffs remain available as history. All 10 acceptance criteria passed with no verifier findings; the saved workflow reached `candidate-ready`.
|
|
20
|
+
|
|
21
|
+
Evidence: [Specification](.specs/20261008-132344-store-escalations-in-builder-handoffs/spec.md), [verifier report](.specs/20261008-132344-store-escalations-in-builder-handoffs/handoffs/verifier/V1.json), and [merged PR #27](https://github.com/emilioSp/pi-maestro/pull/27).
|
|
22
|
+
|
|
23
|
+
## Now
|
|
24
|
+
|
|
25
|
+
### R-03: Route builder failures through owner escalations
|
|
26
|
+
|
|
27
|
+
A technical builder failure currently ends the workflow in `builder-failed`. Replace the builder's `failed` handoff status and the `builder-failed` workflow phase with an escalation. The owner decides how to proceed through the existing escalation process.
|
|
28
|
+
|
|
29
|
+
Complete when builder failures produce owner escalations instead of a terminal failure state. Individual checks retain `failed` as a valid result. Agent instructions, tools, workflow transitions, tests, and documentation must describe the same behavior.
|
|
30
|
+
|
|
31
|
+
Automatic recovery of interrupted runs is outside this item. No specification is approved yet.
|
|
32
|
+
|
|
33
|
+
## Next
|
|
34
|
+
|
|
35
|
+
### R-04: Rename the npm package
|
|
36
|
+
|
|
37
|
+
Rename `@emiliosp/pi-maestro` to `pi-maestro-sdd`. The owner installs the package under the new name. This item changes the package identity, not the development workflow.
|
|
38
|
+
|
|
39
|
+
Complete when package metadata and installation documentation use the new name and the package is available under it. Compatibility with installations under the old name must be decided in the specification. No specification is approved yet.
|
|
40
|
+
|
|
41
|
+
## Later
|
|
42
|
+
|
|
43
|
+
These items need scope review before specification approval. Existing behavior must be checked before adding new code. Dependencies between these items are not yet agreed.
|
|
44
|
+
|
|
45
|
+
### R-05: Keep acceptance criterion numbering continuous
|
|
46
|
+
|
|
47
|
+
When criteria are removed during spec preparation or revision, renumber the remaining criteria without gaps. Numbering starts at `AC1` and continues through the final criterion. Complete when the spec and its current references use consistent numbering.
|
|
48
|
+
|
|
49
|
+
### R-06: Check subagent extensions at activation
|
|
50
|
+
|
|
51
|
+
Make extension availability problems visible before a builder or verifier run starts. Activation already checks agent launch contracts, so first identify any missing extension checks. Complete when unavailable required subagent extensions prevent activation and the error identifies the problem.
|
|
52
|
+
|
|
53
|
+
### R-07: Guide initial configuration
|
|
54
|
+
|
|
55
|
+
Help the owner create Maestro configuration through an interview. Maestro asks questions and writes the agreed configuration. Complete when the owner can create a valid project configuration without writing the file manually.
|
|
56
|
+
|
|
57
|
+
### R-08: Change agent models before a builder run
|
|
58
|
+
|
|
59
|
+
Let the owner change the builder and verifier models during spec preparation and the `ready-for-builder` phase. The selected models apply to subsequent runs. Complete when the owner can select available models in those phases and Maestro uses the selections.
|
|
60
|
+
|
|
61
|
+
### R-09: Define workflow reconciliation
|
|
62
|
+
|
|
63
|
+
Explore how Maestro can reconcile saved artifacts and workflow state. The recovery scope is not yet defined. The owner must define the intended outcome, recovery boundaries, and completion condition before this item can move forward.
|
|
64
|
+
|
|
65
|
+
### R-10: Match handoff criteria to the approved spec
|
|
66
|
+
|
|
67
|
+
Prevent builder and verifier reports from omitting or adding acceptance criteria. Each report must contain exactly the criterion IDs in the approved spec, with no duplicates in either place. Existing duplicate checks in reports do not establish this match.
|
|
68
|
+
|
|
69
|
+
Complete when both handoff submissions reject missing, extra, or duplicate criterion IDs before saving a report or changing phase. The specification must define the criterion heading format used to extract IDs. For example, a heading can use `### AC1: ...`.
|
|
70
|
+
|
|
71
|
+
### R-11: Reduce temporary verifier changes
|
|
72
|
+
|
|
73
|
+
Reduce the risk that verification changes the candidate. Existing instructions already require exact restoration, cleanup, and reporting of unresolved restoration problems. Refine the remaining guidance rather than duplicate those rules.
|
|
74
|
+
|
|
75
|
+
Prefer checks that leave existing files unchanged and use separate temporary files when possible. Change an existing file only when a criterion requires it, retain its exact contents, and restore it immediately after each probe, including failed probes. Prefer check-only commands over commands that apply automatic fixes.
|
|
76
|
+
|
|
77
|
+
Complete when verifier instructions cover these limits and require restoration and temporary-file cleanup before handoff. If restoration fails, the verifier must stop and report affected paths and remaining changes. Maestro currently has no file-hash restoration check; adding one requires a separate scope decision.
|
|
78
|
+
|
|
79
|
+
### R-12: Format glossary terms consistently
|
|
80
|
+
|
|
81
|
+
Use inline code formatting for glossary terms throughout the documentation. This lets the owner recognize the same term across documents. Complete when occurrences of glossary terms consistently use formatting such as `candidate-ready`.
|
|
82
|
+
|
|
83
|
+
### R-13: Show when Maestro is working
|
|
84
|
+
|
|
85
|
+
Show an activity indicator in Pi's status bar while progress does not require an owner decision. A spinner is one option, not an agreed implementation. Complete when the status clearly distinguishes work in progress from a request for owner action.
|
package/tech-stack.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Tech stack
|
|
2
|
+
|
|
3
|
+
Maestro is a source-only TypeScript package that uses ECMAScript modules (ESM). Pi loads the TypeScript source directly. The package has no build step or compiled `dist/` directory.
|
|
4
|
+
|
|
5
|
+
| Technology | Use |
|
|
6
|
+
|---|---|
|
|
7
|
+
| TypeScript | Application code and static type checks with `tsc --noEmit`. |
|
|
8
|
+
| Node.js | Runtime. |
|
|
9
|
+
| Pi | Extension host, agent APIs, and terminal interface. |
|
|
10
|
+
| `pi-subagents` | Builder and verifier execution and activity tracking. |
|
|
11
|
+
| TypeBox | Schemas and runtime validation for configuration, workflow state, tool inputs, and agent reports. |
|
|
12
|
+
| Vitest with V8 coverage | Unit tests, integration tests, and code coverage. |
|
|
13
|
+
| Biome | Formatting and lint checks. |
|
|
14
|
+
| Oxlint with `oxlint-anti-slop` | Additional lint and anti-slop checks. |
|