@julioborges/gantry 1.0.5 → 1.1.0

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.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: gantry
3
3
  description: Harness-neutral agentic SDLC workflow. Resolves ready Issues deterministically, plans only to operator approval, implements with TDD, reviews against standards and Spec, and accepts delivery only after adversarial verification.
4
- argument-hint: <spec-slug | spec#NN | wave:N | frontier | all | "free-text goal"> [--limit N] [--budget N]
4
+ argument-hint: <spec-slug | spec#NN | wave:N | frontier | all | "Implement the <slug> Spec" | "free-text goal"> [--limit N] [--budget N]
5
5
  ---
6
6
 
7
7
  # Gantry
@@ -147,6 +147,14 @@ Every script provides `--help`, and data-producing paths support `--json`.
147
147
  - Planning creates draft Issues and never edits `ROADMAP.md`. Present drafts and the critic verdict, then
148
148
  stop. Only explicit operator approval permits `roadmap.py status <ref> ready-for-agent`, followed by
149
149
  `roadmap.py waves` and `roadmap.py check`.
150
+ - **Execution phrasing and delegation to `gantry-plan`**: `Implement the <slug> Spec` is an execution-scope
151
+ alias for an approved `<slug>` Spec; resolve it to that slug before scope validation. When `gantry` is invoked
152
+ with any other free-text goal (e.g. a quoted string
153
+ like `"add webhook support"`) or an unplanned spec (a spec without implementation issues in
154
+ `.scratch/<slug>/issues/` or whose status is `draft`), it automatically delegates to `gantry-plan`.
155
+ `gantry-plan` executes the Socratic Gate interview or spec validation, tracer-bullet vertical slicing,
156
+ token budget audit, Plan Critic validation, and operator approval transition. Once approved, delegated
157
+ execution automatically advances into the round implementation loop without prompting to start `gantry`.
150
158
  - Each Issue follows `reference/round-workflow.md`: a fresh TDD implementer, a reviewer on both standards
151
159
  and Spec axes, one review fix pass, then a fresh adversarial Critic. The Critic alone can establish a
152
160
  complete delivery. Its refutation consumes at most the correction budget.
@@ -158,6 +166,12 @@ Every script provides `--help`, and data-producing paths support `--json`.
158
166
  `{prefix}{spec}-{number:02d}`), rendered by `common.issue_branch(policy, issue)`.
159
167
  - Only after Critic acceptance, green gates and a clean worktree may the orchestrator run
160
168
  `roadmap.py done <ref>`. Never hand-edit Issue status, criteria checkboxes or the roadmap.
169
+ - Round dashboard hooks automate lifecycle visibility: before the `Implement` phase begins in any round,
170
+ the workflow queries `python3 <skillDir>/scripts/dashboard.py status --json`. If inactive, it asks the operator
171
+ whether to start the dashboard (`dashboard.py start --daemon`) and displays the URL on approval, proceeding
172
+ without prompts if declined; if already active, it logs the URL without prompting. Immediately after `Integrate`
173
+ completes at round end, it queries `dashboard.py status --json`: if active, it prompts the operator asking
174
+ whether to terminate the server daemon (`dashboard.py stop`).
161
175
  - At the end of a Run, execute `python3 <skillDir>/scripts/cleanup.py --plan --json` from the Run worktree
162
176
  and present its JSON output as the actual, read-only cleanup plan for the operator's authorization.
163
177
  Only after explicit Cleanup Authorization may the workflow pass that unchanged JSON to
@@ -1,14 +1,15 @@
1
1
  {
2
- "tier": "compatible",
2
+ "tier": "supported",
3
3
  "hooks": false,
4
4
  "structured_output": false,
5
5
  "worktree_isolation": false,
6
- "per_role_model": false,
6
+ "per_role_model": true,
7
7
  "parallel_round": false,
8
8
  "skills_path": ".agents/skills",
9
9
  "hook_events": [],
10
10
  "payload_fields": [],
11
11
  "models": {
12
- "gpt-5.2-codex": {"contextWindow": 272000}
12
+ "gpt-5.2-codex": {"contextWindow": 272000},
13
+ "gpt-5-codex": {"contextWindow": 272000}
13
14
  }
14
15
  }