shipwright-cli 2.1.2 → 2.2.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.
- package/.claude/agents/devops-engineer.md +14 -12
- package/.claude/agents/doc-fleet-agent.md +99 -0
- package/.claude/agents/test-specialist.md +5 -3
- package/README.md +48 -27
- package/claude-code/CLAUDE.md.shipwright +2 -2
- package/config/policy.json +73 -0
- package/config/policy.schema.json +75 -0
- package/docs/AGI-PLATFORM-PLAN.md +122 -0
- package/docs/AGI-WHATS-NEXT.md +69 -0
- package/docs/KNOWN-ISSUES.md +1 -23
- package/docs/PLATFORM-TODO-BACKLOG.md +41 -0
- package/docs/PLATFORM-TODO-TRIAGE.md +56 -0
- package/docs/README.md +83 -0
- package/docs/TIPS.md +39 -2
- package/docs/config-policy.md +40 -0
- package/docs/definition-of-done.example.md +2 -0
- package/docs/patterns/README.md +5 -0
- package/docs/strategy/02-mission-and-brand.md +3 -3
- package/docs/strategy/README.md +4 -3
- package/docs/tmux-research/TMUX-AUDIT.md +2 -0
- package/docs/tmux-research/TMUX-RESEARCH-INDEX.md +17 -0
- package/package.json +3 -2
- package/scripts/lib/daemon-health.sh +32 -0
- package/scripts/lib/pipeline-quality.sh +23 -0
- package/scripts/lib/policy.sh +32 -0
- package/scripts/sw +5 -1
- package/scripts/sw-activity.sh +35 -46
- package/scripts/sw-adaptive.sh +30 -39
- package/scripts/sw-adversarial.sh +30 -36
- package/scripts/sw-architecture-enforcer.sh +30 -33
- package/scripts/sw-auth.sh +30 -42
- package/scripts/sw-autonomous.sh +60 -40
- package/scripts/sw-changelog.sh +29 -30
- package/scripts/sw-checkpoint.sh +30 -18
- package/scripts/sw-ci.sh +30 -42
- package/scripts/sw-cleanup.sh +32 -15
- package/scripts/sw-code-review.sh +26 -32
- package/scripts/sw-connect.sh +30 -19
- package/scripts/sw-context.sh +30 -19
- package/scripts/sw-cost.sh +30 -40
- package/scripts/sw-daemon.sh +66 -36
- package/scripts/sw-dashboard.sh +31 -40
- package/scripts/sw-db.sh +30 -20
- package/scripts/sw-decompose.sh +30 -38
- package/scripts/sw-deps.sh +30 -41
- package/scripts/sw-developer-simulation.sh +30 -36
- package/scripts/sw-discovery.sh +36 -19
- package/scripts/sw-doc-fleet.sh +822 -0
- package/scripts/sw-docs-agent.sh +30 -36
- package/scripts/sw-docs.sh +29 -31
- package/scripts/sw-doctor.sh +52 -20
- package/scripts/sw-dora.sh +29 -34
- package/scripts/sw-durable.sh +30 -20
- package/scripts/sw-e2e-orchestrator.sh +36 -21
- package/scripts/sw-eventbus.sh +30 -17
- package/scripts/sw-feedback.sh +30 -41
- package/scripts/sw-fix.sh +30 -40
- package/scripts/sw-fleet-discover.sh +30 -41
- package/scripts/sw-fleet-viz.sh +30 -20
- package/scripts/sw-fleet.sh +30 -40
- package/scripts/sw-github-app.sh +30 -41
- package/scripts/sw-github-checks.sh +30 -41
- package/scripts/sw-github-deploy.sh +30 -41
- package/scripts/sw-github-graphql.sh +30 -38
- package/scripts/sw-guild.sh +30 -37
- package/scripts/sw-heartbeat.sh +30 -19
- package/scripts/sw-hygiene.sh +134 -42
- package/scripts/sw-incident.sh +30 -39
- package/scripts/sw-init.sh +31 -14
- package/scripts/sw-instrument.sh +30 -41
- package/scripts/sw-intelligence.sh +39 -44
- package/scripts/sw-jira.sh +31 -41
- package/scripts/sw-launchd.sh +30 -17
- package/scripts/sw-linear.sh +31 -41
- package/scripts/sw-logs.sh +32 -17
- package/scripts/sw-loop.sh +32 -19
- package/scripts/sw-memory.sh +32 -43
- package/scripts/sw-mission-control.sh +31 -40
- package/scripts/sw-model-router.sh +30 -20
- package/scripts/sw-otel.sh +30 -20
- package/scripts/sw-oversight.sh +30 -36
- package/scripts/sw-patrol-meta.sh +31 -0
- package/scripts/sw-pipeline-composer.sh +30 -39
- package/scripts/sw-pipeline-vitals.sh +30 -44
- package/scripts/sw-pipeline.sh +275 -6388
- package/scripts/sw-pm.sh +31 -41
- package/scripts/sw-pr-lifecycle.sh +30 -42
- package/scripts/sw-predictive.sh +32 -34
- package/scripts/sw-prep.sh +30 -19
- package/scripts/sw-ps.sh +32 -17
- package/scripts/sw-public-dashboard.sh +30 -40
- package/scripts/sw-quality.sh +42 -40
- package/scripts/sw-reaper.sh +32 -15
- package/scripts/sw-recruit.sh +428 -48
- package/scripts/sw-regression.sh +30 -38
- package/scripts/sw-release-manager.sh +30 -38
- package/scripts/sw-release.sh +29 -31
- package/scripts/sw-remote.sh +31 -40
- package/scripts/sw-replay.sh +30 -18
- package/scripts/sw-retro.sh +33 -42
- package/scripts/sw-scale.sh +41 -24
- package/scripts/sw-security-audit.sh +30 -20
- package/scripts/sw-self-optimize.sh +33 -37
- package/scripts/sw-session.sh +31 -15
- package/scripts/sw-setup.sh +30 -16
- package/scripts/sw-standup.sh +30 -20
- package/scripts/sw-status.sh +33 -13
- package/scripts/sw-strategic.sh +55 -43
- package/scripts/sw-stream.sh +33 -37
- package/scripts/sw-swarm.sh +30 -21
- package/scripts/sw-team-stages.sh +30 -38
- package/scripts/sw-templates.sh +31 -16
- package/scripts/sw-testgen.sh +30 -31
- package/scripts/sw-tmux-pipeline.sh +29 -31
- package/scripts/sw-tmux-role-color.sh +31 -0
- package/scripts/sw-tmux-status.sh +31 -0
- package/scripts/sw-tmux.sh +31 -15
- package/scripts/sw-trace.sh +30 -19
- package/scripts/sw-tracker-github.sh +31 -0
- package/scripts/sw-tracker-jira.sh +31 -0
- package/scripts/sw-tracker-linear.sh +31 -0
- package/scripts/sw-tracker.sh +30 -40
- package/scripts/sw-triage.sh +68 -61
- package/scripts/sw-upgrade.sh +30 -16
- package/scripts/sw-ux.sh +30 -35
- package/scripts/sw-webhook.sh +30 -25
- package/scripts/sw-widgets.sh +30 -19
- package/scripts/sw-worktree.sh +32 -15
- package/tmux/templates/doc-fleet.json +43 -0
|
@@ -6,18 +6,20 @@ You are a DevOps and CI/CD specialist for the Shipwright project. You work on Gi
|
|
|
6
6
|
|
|
7
7
|
Workflows live in `.github/workflows/` with the `shipwright-*.yml` naming prefix:
|
|
8
8
|
|
|
9
|
-
| Workflow
|
|
10
|
-
|
|
|
11
|
-
| `shipwright-release.yml`
|
|
12
|
-
| `shipwright-auto-label.yml`
|
|
13
|
-
| `shipwright-auto-retry.yml`
|
|
14
|
-
| `shipwright-health.yml`
|
|
15
|
-
| `shipwright-
|
|
16
|
-
| `shipwright-
|
|
17
|
-
| `shipwright-
|
|
18
|
-
| `shipwright-
|
|
19
|
-
| `shipwright-
|
|
20
|
-
| `shipwright-
|
|
9
|
+
| Workflow | Purpose |
|
|
10
|
+
| -------------------------------- | ------------------------------- |
|
|
11
|
+
| `shipwright-release.yml` | Release automation |
|
|
12
|
+
| `shipwright-auto-label.yml` | Issue/PR auto-labeling |
|
|
13
|
+
| `shipwright-auto-retry.yml` | Failed pipeline auto-retry |
|
|
14
|
+
| `shipwright-health.yml` | Health check monitoring |
|
|
15
|
+
| `shipwright-platform-health.yml` | Platform health monitoring |
|
|
16
|
+
| `shipwright-docs.yml` | Docs sync (AUTO sections, wiki) |
|
|
17
|
+
| `shipwright-patrol.yml` | Security patrol scans |
|
|
18
|
+
| `shipwright-pipeline.yml` | CI pipeline trigger |
|
|
19
|
+
| `shipwright-sweep.yml` | Stale resource cleanup |
|
|
20
|
+
| `shipwright-watchdog.yml` | Process watchdog |
|
|
21
|
+
| `shipwright-test.yml` | Test suite runner |
|
|
22
|
+
| `shipwright-website.yml` | Documentation site deployment |
|
|
21
23
|
|
|
22
24
|
## GitHub CLI Patterns
|
|
23
25
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Documentation Fleet Agent
|
|
2
|
+
|
|
3
|
+
You are a specialized agent in the Shipwright documentation fleet. The fleet orchestrates multiple agents, each with a focused documentation role. Your specific role is assigned at spawn time.
|
|
4
|
+
|
|
5
|
+
## Fleet Roles
|
|
6
|
+
|
|
7
|
+
### 1. Doc Architect (leader)
|
|
8
|
+
|
|
9
|
+
You own the **documentation structure and information architecture**. Your job:
|
|
10
|
+
|
|
11
|
+
- Audit the full docs tree: `docs/`, `.claude/`, `README.md`, `STRATEGY.md`, `CHANGELOG*.md`
|
|
12
|
+
- Identify duplicate content, orphan pages, missing cross-links, and structural gaps
|
|
13
|
+
- Propose a coherent information hierarchy with clear navigation paths
|
|
14
|
+
- Ensure every doc has a clear audience (contributor, user, operator, agent)
|
|
15
|
+
- Create/update index files (`docs/README.md`, `docs/strategy/README.md`, etc.)
|
|
16
|
+
- Maintain a docs manifest in `.claude/pipeline-artifacts/docs-manifest.json`
|
|
17
|
+
|
|
18
|
+
### 2. Claude MD Specialist
|
|
19
|
+
|
|
20
|
+
You own **all CLAUDE.md files and agent role definitions**. Your job:
|
|
21
|
+
|
|
22
|
+
- Audit `.claude/CLAUDE.md` for accuracy, completeness, and freshness
|
|
23
|
+
- Ensure AUTO sections are current (cross-reference with actual script files)
|
|
24
|
+
- Audit `.claude/agents/*.md` role definitions — are they accurate? complete?
|
|
25
|
+
- Audit `claude-code/CLAUDE.md.shipwright` template for downstream repos
|
|
26
|
+
- Remove stale content, update command tables, fix broken references
|
|
27
|
+
- Ensure development guidelines match actual codebase conventions
|
|
28
|
+
- Keep the CLAUDE.md focused and scannable — no bloat
|
|
29
|
+
|
|
30
|
+
### 3. Strategy & Plans Curator
|
|
31
|
+
|
|
32
|
+
You own **strategic documentation and planning artifacts**. Your job:
|
|
33
|
+
|
|
34
|
+
- Audit `STRATEGY.md` — are priorities still current? are metrics up to date?
|
|
35
|
+
- Audit `docs/AGI-PLATFORM-PLAN.md` — completed items should be marked done
|
|
36
|
+
- Audit `docs/AGI-WHATS-NEXT.md` — remove completed gaps, add new ones
|
|
37
|
+
- Audit `docs/PLATFORM-TODO-BACKLOG.md` — triage and prioritize
|
|
38
|
+
- Audit `docs/strategy/` directory — market research, brand, GTM freshness
|
|
39
|
+
- Cross-reference strategy docs with actual shipped features
|
|
40
|
+
- Remove aspirational content that's now reality; add new aspirations
|
|
41
|
+
|
|
42
|
+
### 4. Pattern & Guide Writer
|
|
43
|
+
|
|
44
|
+
You own **developer-facing guides and patterns**. Your job:
|
|
45
|
+
|
|
46
|
+
- Audit `docs/patterns/` — are all wave patterns still accurate?
|
|
47
|
+
- Audit `docs/TIPS.md` — add new tips from recent development
|
|
48
|
+
- Audit `docs/KNOWN-ISSUES.md` — resolved issues should be removed
|
|
49
|
+
- Audit `docs/config-policy.md` — does it match `config/policy.json` schema?
|
|
50
|
+
- Audit `docs/definition-of-done.example.md` vs `.claude/DEFINITION-OF-DONE.md`
|
|
51
|
+
- Create any missing how-to guides (e.g., "How to add a new agent")
|
|
52
|
+
- Ensure tmux docs in `docs/tmux-research/` are current
|
|
53
|
+
|
|
54
|
+
### 5. README & Onboarding Optimizer
|
|
55
|
+
|
|
56
|
+
You own the **public-facing documentation and first-impression experience**. Your job:
|
|
57
|
+
|
|
58
|
+
- Audit `README.md` — is it accurate, compelling, and up-to-date?
|
|
59
|
+
- Verify all command tables match actual CLI behavior (test with `sw <cmd> help`)
|
|
60
|
+
- Ensure install instructions work on a fresh machine
|
|
61
|
+
- Audit the "Quick Start" flow — does it actually work?
|
|
62
|
+
- Check that badge URLs, links, and examples are valid
|
|
63
|
+
- Optimize for scannability: TOC, headers, tables over prose
|
|
64
|
+
- Audit `.github/pull_request_template.md` for completeness
|
|
65
|
+
|
|
66
|
+
## Rules for All Roles
|
|
67
|
+
|
|
68
|
+
### DO
|
|
69
|
+
|
|
70
|
+
- Read before writing — always verify current state before making changes
|
|
71
|
+
- Preserve existing AUTO section markers — they power the docs sync system
|
|
72
|
+
- Use tables for reference content, prose for concepts
|
|
73
|
+
- Cross-link between documents using relative paths
|
|
74
|
+
- Commit after each meaningful change with descriptive messages
|
|
75
|
+
- Verify links point to files that actually exist
|
|
76
|
+
- Keep line lengths reasonable (< 120 chars for prose)
|
|
77
|
+
|
|
78
|
+
### DON'T
|
|
79
|
+
|
|
80
|
+
- Don't create documentation for features that don't exist yet
|
|
81
|
+
- Don't duplicate content across files — link instead
|
|
82
|
+
- Don't remove AUTO section markers (they're used by `sw docs sync`)
|
|
83
|
+
- Don't change the structure of `.claude/CLAUDE.md` without good reason — many tools parse it
|
|
84
|
+
- Don't add aspirational/marketing language to technical docs
|
|
85
|
+
- Don't introduce emoji in technical documentation
|
|
86
|
+
- Don't create new files when updating existing ones would suffice
|
|
87
|
+
|
|
88
|
+
### Shell Standards (if editing scripts or examples)
|
|
89
|
+
|
|
90
|
+
- Bash 3.2 compatible
|
|
91
|
+
- `set -euo pipefail` at the top
|
|
92
|
+
- Atomic file writes: tmp + `mv`
|
|
93
|
+
- JSON via `jq --arg`, never string interpolation
|
|
94
|
+
|
|
95
|
+
## Completion
|
|
96
|
+
|
|
97
|
+
- Output `LOOP_COMPLETE` when your assigned documentation scope is fully audited and updated
|
|
98
|
+
- List what you changed, what you removed, and what you recommend for follow-up
|
|
99
|
+
- Do not mark complete if you found issues you couldn't resolve — document them instead
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Test Specialist
|
|
2
2
|
|
|
3
|
-
You are a test development specialist for the Shipwright project. The project has
|
|
3
|
+
You are a test development specialist for the Shipwright project. The project has 90+ test suites (see `package.json` scripts.test and the AUTO:test-suites table in `.claude/CLAUDE.md`), all written in Bash following a consistent harness pattern.
|
|
4
4
|
|
|
5
5
|
## Test Harness Conventions
|
|
6
6
|
|
|
@@ -160,9 +160,11 @@ echo "================================"
|
|
|
160
160
|
- **Deterministic**: tests must produce the same results on every run
|
|
161
161
|
- **Fast**: individual test functions should complete in under 5 seconds
|
|
162
162
|
|
|
163
|
-
## Current Test Suites
|
|
163
|
+
## Current Test Suites
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
See the AUTO:test-suites table in `.claude/CLAUDE.md` for the full list (90+ suites). Representative suites:
|
|
166
|
+
|
|
167
|
+
| Suite | Source Under Test |
|
|
166
168
|
| ---------------------------- | ----------------------- | ------------------------------------- |
|
|
167
169
|
| sw-pipeline-test.sh | Pipeline flow | sw-pipeline.sh |
|
|
168
170
|
| sw-daemon-test.sh | Daemon lifecycle | sw-daemon.sh |
|
package/README.md
CHANGED
|
@@ -12,35 +12,55 @@
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="https://github.com/sethdford/shipwright/actions/workflows/test.yml"><img src="https://github.com/sethdford/shipwright/actions/workflows/test.yml/badge.svg" alt="Tests"></a>
|
|
14
14
|
<a href="https://github.com/sethdford/shipwright/actions/workflows/shipwright-pipeline.yml"><img src="https://github.com/sethdford/shipwright/actions/workflows/shipwright-pipeline.yml/badge.svg" alt="Pipeline"></a>
|
|
15
|
-
<img src="https://img.shields.io/badge/tests-
|
|
16
|
-
<img src="https://img.shields.io/badge/version-2.1.
|
|
15
|
+
<img src="https://img.shields.io/badge/tests-99_suites_passing-4ade80?style=flat-square" alt="99 suites">
|
|
16
|
+
<img src="https://img.shields.io/badge/version-2.1.2-00d4ff?style=flat-square" alt="v2.1.2">
|
|
17
17
|
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT License">
|
|
18
18
|
<img src="https://img.shields.io/badge/bash-3.2%2B-7c3aed?style=flat-square" alt="Bash 3.2+">
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
+
## Table of Contents
|
|
24
|
+
|
|
25
|
+
- [Shipwright Builds Itself](#shipwright-builds-itself)
|
|
26
|
+
- [What's New in v2.1.2](#whats-new-in-v212)
|
|
27
|
+
- [How It Works](#how-it-works)
|
|
28
|
+
- [Install](#install)
|
|
29
|
+
- [Quick Start](#quick-start)
|
|
30
|
+
- [Features](#features)
|
|
31
|
+
- [Commands](#commands)
|
|
32
|
+
- [Pipeline Templates for Teams](#pipeline-templates-for-teams)
|
|
33
|
+
- [Configuration](#configuration)
|
|
34
|
+
- [Prerequisites](#prerequisites)
|
|
35
|
+
- [Architecture](#architecture)
|
|
36
|
+
- [Contributing](#contributing)
|
|
37
|
+
- [License](#license)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
23
41
|
## Shipwright Builds Itself
|
|
24
42
|
|
|
25
43
|
This repo uses Shipwright to process its own issues. Label a GitHub issue with `shipwright` and the autonomous pipeline takes over: semantic triage, plan, design, build, test, review, quality gates, PR. No human in the loop.
|
|
26
44
|
|
|
27
|
-
**[See it live](
|
|
45
|
+
**[See it live](https://github.com/sethdford/shipwright/actions/workflows/shipwright-pipeline.yml)** | **[Create an issue](https://github.com/sethdford/shipwright/issues/new?template=shipwright.yml)** and watch it build.
|
|
28
46
|
|
|
29
47
|
---
|
|
30
48
|
|
|
31
|
-
## What's New in v2.1.
|
|
49
|
+
## What's New in v2.1.2
|
|
50
|
+
|
|
51
|
+
**AGI-Level Agent Recruitment** — dynamic role creation, LLM-powered matching, closed-loop learning:
|
|
32
52
|
|
|
33
|
-
|
|
53
|
+
- **`recruit match`** — AI/heuristic task→role matching with `--json` output for pipeline integration
|
|
54
|
+
- **`recruit team`** — Context-aware team composition with cost estimation
|
|
55
|
+
- **`recruit route`** — Smart routing based on agent performance history
|
|
56
|
+
- **Cross-system integration** — Pipeline, PM, triage, loop, and swarm all use recruit for model/role selection
|
|
57
|
+
- **Self-tuning heuristics** — System learns keyword→role mappings from successful outcomes
|
|
58
|
+
- **Meta-learning** — Accuracy tracking and self-correction for matching decisions
|
|
59
|
+
- **CI auto-discovery** — All 99 test suites now run in CI (previously 26)
|
|
34
60
|
|
|
35
|
-
|
|
36
|
-
- **Pipeline Stage Badge** — Live `⚙ BUILD` / `⚡ TEST` / `↑ PR` widget in status bar with stage-colored badges
|
|
37
|
-
- **Active Pane Lift** — Subtle background depth effect between active and inactive panes
|
|
38
|
-
- **Agent Count Widget** — `λN` heartbeat-based agent counter in status bar
|
|
39
|
-
- **`shipwright init --repair`** — Force clean reinstall after OS upgrades
|
|
40
|
-
- **Color Palette Overhaul** — Warm grays replace harsh near-white text across all tmux chrome
|
|
41
|
-
- **7 tmux Bug Fixes** — Pane indexing, capture bindings, reload, clipboard, and more
|
|
61
|
+
**v2.1.0**: tmux visual overhaul — role-colored borders, pipeline status widgets, active pane depth
|
|
42
62
|
|
|
43
|
-
**v2.0.0
|
|
63
|
+
**v2.0.0**: 18 autonomous agents, 100+ CLI commands, intelligence layer, multi-repo fleet, local mode
|
|
44
64
|
|
|
45
65
|
---
|
|
46
66
|
|
|
@@ -187,7 +207,7 @@ Each stage is configurable with quality gates that auto-proceed or pause for app
|
|
|
187
207
|
| Template | Stages | Use Case |
|
|
188
208
|
| ------------ | --------------------------------- | ------------------------- |
|
|
189
209
|
| `fast` | intake → build → test → PR | Quick fixes, score >= 70 |
|
|
190
|
-
| `standard` | + plan, review
|
|
210
|
+
| `standard` | + plan, design, review | Normal feature work |
|
|
191
211
|
| `full` | All 12 stages | Production deployment |
|
|
192
212
|
| `hotfix` | Minimal, all auto | Urgent production fixes |
|
|
193
213
|
| `autonomous` | All stages, all auto | Daemon-driven delivery |
|
|
@@ -282,12 +302,12 @@ Instant issue processing via GitHub webhooks instead of polling. Register webhoo
|
|
|
282
302
|
### PR Lifecycle Automation
|
|
283
303
|
|
|
284
304
|
```bash
|
|
285
|
-
shipwright pr
|
|
286
|
-
shipwright pr merge
|
|
305
|
+
shipwright pr review <pr#>
|
|
306
|
+
shipwright pr merge <pr#>
|
|
287
307
|
shipwright pr cleanup
|
|
288
308
|
```
|
|
289
309
|
|
|
290
|
-
Fully automated PR management:
|
|
310
|
+
Fully automated PR management: review based on predictive risk and coverage, intelligent auto-merge when gates pass, cleanup stale branches. Reduces manual PR overhead by 90%.
|
|
291
311
|
|
|
292
312
|
### Fleet Auto-Discovery
|
|
293
313
|
|
|
@@ -304,10 +324,11 @@ ACID-safe state management replacing JSON files. Replaces volatile `.claude/pipe
|
|
|
304
324
|
### Issue Decomposition
|
|
305
325
|
|
|
306
326
|
```bash
|
|
307
|
-
shipwright decompose
|
|
327
|
+
shipwright decompose analyze 42
|
|
328
|
+
shipwright decompose decompose 42
|
|
308
329
|
```
|
|
309
330
|
|
|
310
|
-
AI-powered issue analysis:
|
|
331
|
+
AI-powered issue analysis: `analyze` scores complexity; `decompose` creates child issues with inherited labels/assignees and a dependency graph.
|
|
311
332
|
|
|
312
333
|
### Linux systemd Support
|
|
313
334
|
|
|
@@ -338,16 +359,16 @@ shipwright pipeline start --issue 42
|
|
|
338
359
|
shipwright daemon start --detach
|
|
339
360
|
|
|
340
361
|
# Agent teams
|
|
341
|
-
shipwright swarm
|
|
362
|
+
shipwright swarm status
|
|
342
363
|
shipwright recruit --roles builder,tester
|
|
343
364
|
shipwright standup
|
|
344
|
-
shipwright guild
|
|
365
|
+
shipwright guild list
|
|
345
366
|
|
|
346
367
|
# Quality gates
|
|
347
368
|
shipwright code-review
|
|
348
369
|
shipwright security-audit
|
|
349
370
|
shipwright testgen
|
|
350
|
-
shipwright quality
|
|
371
|
+
shipwright quality validate
|
|
351
372
|
|
|
352
373
|
# Observability
|
|
353
374
|
shipwright vitals
|
|
@@ -375,11 +396,11 @@ shipwright upgrade --apply
|
|
|
375
396
|
shipwright --help
|
|
376
397
|
```
|
|
377
398
|
|
|
378
|
-
See
|
|
399
|
+
See [.claude/CLAUDE.md](.claude/CLAUDE.md) for the complete 100+ command reference organized by workflow. Full documentation: [docs/](docs/).
|
|
379
400
|
|
|
380
401
|
## Pipeline Templates for Teams
|
|
381
402
|
|
|
382
|
-
|
|
403
|
+
25 team templates covering the full SDLC:
|
|
383
404
|
|
|
384
405
|
```bash
|
|
385
406
|
shipwright templates list
|
|
@@ -411,7 +432,7 @@ shipwright templates list
|
|
|
411
432
|
|
|
412
433
|
## Architecture
|
|
413
434
|
|
|
414
|
-
|
|
435
|
+
100+ bash scripts (~100K lines), 99 test suites (1000+ tests), plus a TypeScript dashboard server. Bash 3.2 compatible — runs on macOS and Linux out of the box.
|
|
415
436
|
|
|
416
437
|
**Core Layers:**
|
|
417
438
|
|
|
@@ -477,12 +498,12 @@ Tools & UX
|
|
|
477
498
|
|
|
478
499
|
## Contributing
|
|
479
500
|
|
|
480
|
-
**Let Shipwright build it:** Create an issue using the [Shipwright template](
|
|
501
|
+
**Let Shipwright build it:** Create an issue using the [Shipwright template](https://github.com/sethdford/shipwright/issues/new?template=shipwright.yml) and label it `shipwright`. The autonomous pipeline will triage, plan, build, test, review, and create a PR.
|
|
481
502
|
|
|
482
503
|
**Manual development:** Fork, branch, then:
|
|
483
504
|
|
|
484
505
|
```bash
|
|
485
|
-
npm test #
|
|
506
|
+
npm test # 1000+ tests across 99 suites
|
|
486
507
|
```
|
|
487
508
|
|
|
488
509
|
## License
|
|
@@ -19,7 +19,7 @@ This project uses [Shipwright](https://github.com/sethdford/shipwright) for auto
|
|
|
19
19
|
| `shipwright cost show` | Token usage and spending dashboard |
|
|
20
20
|
| `shipwright cost budget set <amount>` | Set daily budget limit |
|
|
21
21
|
| `shipwright cost remaining-budget` | Check remaining daily budget (used by auto-scaler) |
|
|
22
|
-
| `shipwright memory
|
|
22
|
+
| `shipwright memory show` | View captured failure patterns |
|
|
23
23
|
| `shipwright dashboard` | Real-time web dashboard (requires Bun) |
|
|
24
24
|
| `shipwright dashboard start` | Start dashboard in background |
|
|
25
25
|
| `shipwright heartbeat list` | Show agent heartbeat status |
|
|
@@ -170,7 +170,7 @@ Generate with `shipwright daemon init`, then edit `.claude/daemon-config.json`:
|
|
|
170
170
|
| Command | Purpose |
|
|
171
171
|
|---------|---------|
|
|
172
172
|
| `shipwright pipeline resume` | Resume from last completed stage |
|
|
173
|
-
| `shipwright memory show`
|
|
173
|
+
| `shipwright memory show` | View captured failure patterns |
|
|
174
174
|
| `shipwright doctor` | Diagnose setup issues |
|
|
175
175
|
| `shipwright status` | Check team and agent status |
|
|
176
176
|
| `shipwright cleanup --force` | Kill orphaned sessions |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://shipwright.dev/schemas/policy-v1.json",
|
|
3
|
+
"description": "Central policy for Shipwright — timeouts, limits, thresholds. Prefer adaptive/learned overrides when available.",
|
|
4
|
+
"version": "1",
|
|
5
|
+
"daemon": {
|
|
6
|
+
"poll_interval_seconds": 60,
|
|
7
|
+
"health_heartbeat_timeout": 120,
|
|
8
|
+
"stage_timeouts": {
|
|
9
|
+
"intake": 60,
|
|
10
|
+
"plan": 60,
|
|
11
|
+
"design": 60,
|
|
12
|
+
"lint": 60,
|
|
13
|
+
"format": 60,
|
|
14
|
+
"build": 300,
|
|
15
|
+
"test": 180,
|
|
16
|
+
"review": 180,
|
|
17
|
+
"compound_quality": 180
|
|
18
|
+
},
|
|
19
|
+
"auto_scale_interval_cycles": 5,
|
|
20
|
+
"optimize_interval_cycles": 10,
|
|
21
|
+
"stale_reaper_interval_cycles": 10,
|
|
22
|
+
"stale_timeout_multiplier": 2,
|
|
23
|
+
"stale_state_hours": 2
|
|
24
|
+
},
|
|
25
|
+
"pipeline": {
|
|
26
|
+
"max_iterations_default": 10,
|
|
27
|
+
"max_cycles_convergence_cap": 50,
|
|
28
|
+
"coverage_threshold_percent": 60,
|
|
29
|
+
"quality_gate_score_threshold": 70,
|
|
30
|
+
"memory_baseline_fallback_percent": 20,
|
|
31
|
+
"memory_inject_fallback_percent": 30
|
|
32
|
+
},
|
|
33
|
+
"quality": {
|
|
34
|
+
"coverage_threshold": 60,
|
|
35
|
+
"gate_score_threshold": 70,
|
|
36
|
+
"audit_weights": {
|
|
37
|
+
"test_pass": 30,
|
|
38
|
+
"coverage": 20,
|
|
39
|
+
"security": 20,
|
|
40
|
+
"architecture": 15,
|
|
41
|
+
"correctness": 15
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"strategic": {
|
|
45
|
+
"max_issues_per_cycle": 5,
|
|
46
|
+
"cooldown_seconds": 14400,
|
|
47
|
+
"overlap_threshold_percent": 60,
|
|
48
|
+
"strategy_lines": 200
|
|
49
|
+
},
|
|
50
|
+
"sweep": {
|
|
51
|
+
"cron_minutes": 30,
|
|
52
|
+
"stuck_threshold_hours": 4,
|
|
53
|
+
"retry_template": "full",
|
|
54
|
+
"retry_max_iterations": 25,
|
|
55
|
+
"stuck_retry_max_iterations": 30
|
|
56
|
+
},
|
|
57
|
+
"hygiene": {
|
|
58
|
+
"artifact_age_days": 7
|
|
59
|
+
},
|
|
60
|
+
"recruit": {
|
|
61
|
+
"self_tune_min_matches": 5,
|
|
62
|
+
"self_tune_min_success_rate": 60,
|
|
63
|
+
"match_confidence_threshold": 0.3,
|
|
64
|
+
"max_match_history_size": 5000,
|
|
65
|
+
"max_profile_task_history": 50,
|
|
66
|
+
"meta_learning_accuracy_floor": 50,
|
|
67
|
+
"auto_evolve_after_outcomes": 20,
|
|
68
|
+
"llm_timeout_seconds": 30,
|
|
69
|
+
"default_model": "sonnet",
|
|
70
|
+
"promote_threshold_tasks": 10,
|
|
71
|
+
"promote_threshold_success_rate": 85
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://shipwright.dev/schemas/policy-v1.json",
|
|
4
|
+
"title": "Shipwright Policy",
|
|
5
|
+
"description": "Central policy for Shipwright — timeouts, limits, thresholds.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"version": { "type": "string" },
|
|
9
|
+
"daemon": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"poll_interval_seconds": { "type": "integer", "minimum": 10 },
|
|
13
|
+
"health_heartbeat_timeout": { "type": "integer", "minimum": 60 },
|
|
14
|
+
"stage_timeouts": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"additionalProperties": { "type": "integer", "minimum": 0 }
|
|
17
|
+
},
|
|
18
|
+
"auto_scale_interval_cycles": { "type": "integer" },
|
|
19
|
+
"optimize_interval_cycles": { "type": "integer" },
|
|
20
|
+
"stale_reaper_interval_cycles": { "type": "integer" }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"pipeline": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"properties": {
|
|
26
|
+
"max_iterations_default": { "type": "integer" },
|
|
27
|
+
"coverage_threshold_percent": {
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"minimum": 0,
|
|
30
|
+
"maximum": 100
|
|
31
|
+
},
|
|
32
|
+
"quality_gate_score_threshold": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"minimum": 0,
|
|
35
|
+
"maximum": 100
|
|
36
|
+
},
|
|
37
|
+
"memory_baseline_fallback_percent": { "type": "integer" },
|
|
38
|
+
"memory_inject_fallback_percent": { "type": "integer" }
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"quality": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"coverage_threshold": { "type": "integer" },
|
|
45
|
+
"gate_score_threshold": { "type": "integer" }
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"strategic": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"properties": {
|
|
51
|
+
"max_issues_per_cycle": { "type": "integer" },
|
|
52
|
+
"cooldown_seconds": { "type": "integer" },
|
|
53
|
+
"overlap_threshold_percent": { "type": "integer" },
|
|
54
|
+
"strategy_lines": { "type": "integer" }
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"sweep": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"properties": {
|
|
60
|
+
"cron_minutes": { "type": "integer" },
|
|
61
|
+
"stuck_threshold_hours": { "type": "integer" },
|
|
62
|
+
"retry_template": { "type": "string" },
|
|
63
|
+
"retry_max_iterations": { "type": "integer" },
|
|
64
|
+
"stuck_retry_max_iterations": { "type": "integer" }
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"hygiene": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"artifact_age_days": { "type": "integer" }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": true
|
|
75
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# AGI-Level Platform Plan: Refactor, Refine, Remove, Redo
|
|
2
|
+
|
|
3
|
+
**Status:** Active
|
|
4
|
+
**Created:** 2026-02-16
|
|
5
|
+
**Goal:** Make Shipwright a fully autonomous product development team — reduce hardcoded/static policy, clean architecture, and let the platform improve itself.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Success Criteria
|
|
10
|
+
|
|
11
|
+
- **Policy:** All tunables (timeouts, limits, thresholds) live in `config/policy.json` or env; scripts read via `policy_get` or jq. Zero new hardcoded magic numbers in core paths.
|
|
12
|
+
- **Monoliths:** `sw-pipeline.sh` and `sw-daemon.sh` decomposed into sourced modules (stages, health, poll loop); single-file line count < 2000 for core orchestration.
|
|
13
|
+
- **Helpers:** All scripts use `lib/helpers.sh` for colors/output/events (or a single other canonical source); no duplicated info/success/warn/error blocks.
|
|
14
|
+
- **Platform health:** `shipwright hygiene platform-refactor` counts trend down (hardcoded, fallback, TODO/FIXME/HACK); strategic agent routinely suggests platform refactor issues.
|
|
15
|
+
- **Continuous:** Hygiene + platform-refactor run in CI or weekly; strategic reads platform-hygiene and policy; AGI-level criterion is part of product thinking.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Phase 1: Foundation (Policy + Helpers Adoption)
|
|
20
|
+
|
|
21
|
+
**Goal:** Policy and helpers are the default; at least two key scripts read from policy; plan is visible and tracked.
|
|
22
|
+
|
|
23
|
+
**Status:** Done. 1.1–1.3 done (strategic + hygiene read policy; plan linked from STRATEGY P6). 1.4 done — 4 scripts migrated to helpers (hygiene, doctor, pipeline, quality); batch migration continuing.
|
|
24
|
+
|
|
25
|
+
| # | Task | Owner | Acceptance |
|
|
26
|
+
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | -------------------------------------------------------------------------------------------- |
|
|
27
|
+
| 1.1 | **Strategic reads policy** — In sw-strategic.sh, after constants block, source policy.sh and override STRATEGIC_MAX_ISSUES, COOLDOWN, STRATEGY_LINES, OVERLAP_THRESHOLD from policy when present. | Agent | strategic run uses config/policy.json values when file exists; fallback to current literals. |
|
|
28
|
+
| 1.2 | **Hygiene reads policy** — In sw-hygiene.sh, read artifact_age_days from policy (policy_get ".hygiene.artifact_age_days" 7) when policy.sh available. | Agent | hygiene --artifact-age default comes from policy when present. |
|
|
29
|
+
| 1.3 | **Document plan** — This doc (docs/AGI-PLATFORM-PLAN.md) is the single source of truth; link from STRATEGY.md P6. | Done | STRATEGY P6 references this plan. |
|
|
30
|
+
| 1.4 | **Helpers adoption** — Migrate 3–5 high-traffic scripts to source lib/helpers.sh instead of defining info/success/warn/error (e.g. sw-strategic, sw-hygiene, sw-quality). | Agent | No duplicate color/output blocks in those scripts; they source helpers. |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Phase 2: Policy Migration (First Batch)
|
|
35
|
+
|
|
36
|
+
**Goal:** Daemon, pipeline, quality, and sweep read their key tunables from policy; hardcoded count drops.
|
|
37
|
+
|
|
38
|
+
**Status:** Done. 2.1–2.5 complete. Daemon (timeouts, intervals), pipeline (coverage/quality thresholds), quality (thresholds), sweep (workflow reads policy.json and exports env vars).
|
|
39
|
+
|
|
40
|
+
| # | Task | Owner | Acceptance |
|
|
41
|
+
| --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| 2.1 | **Daemon timeouts** — In sw-daemon.sh, health heartbeat and stage timeouts read from policy_get when policy exists (else keep current defaults). | Agent | daemon_health_timeout_for_stage uses policy .daemon.stage_timeouts and .daemon.health_heartbeat_timeout. |
|
|
43
|
+
| 2.2 | **Daemon intervals** — POLL_INTERVAL, AUTO_SCALE_INTERVAL, OPTIMIZE_INTERVAL, STALE_REAPER_INTERVAL read from policy when present. | Agent | One place (policy) controls daemon timing. |
|
|
44
|
+
| 2.3 | **Pipeline thresholds** — Coverage and quality gate thresholds in pipeline read from policy (pipeline.coverage_threshold_percent, quality_gate_score_threshold, memory fallbacks). | Agent | Pipeline quality gate uses policy_get for thresholds when policy exists. |
|
|
45
|
+
| 2.4 | **Quality script** — sw-quality.sh reads coverage_threshold and gate_score_threshold from policy. | Agent | quality validate/gate use policy. |
|
|
46
|
+
| 2.5 | **Sweep (workflow)** — Document in plan that sweep workflow (shipwright-sweep.yml) uses hardcoded 4h/30min; add optional env or later step to read from policy (e.g. script that emits workflow inputs from policy). | Agent | Either sweep reads policy in a wrapper or doc states “sweep defaults documented in config/policy.json; override via env.” |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Phase 3: Monolith Decomposition
|
|
51
|
+
|
|
52
|
+
**Goal:** Pipeline and daemon are split into sourced modules; no single file > 2000 lines for orchestration core.
|
|
53
|
+
|
|
54
|
+
**Status:** 3.2 and 3.4 done (pipeline-quality.sh and daemon-health.sh created, wired, and sourced). 3.1 and 3.3 (full stage/poll extraction) deferred — high risk, requires incremental approach.
|
|
55
|
+
|
|
56
|
+
| # | Task | Owner | Acceptance |
|
|
57
|
+
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | --------------------------------------------------------------------- |
|
|
58
|
+
| 3.1 | **Pipeline stages lib** — Extract stage run logic (run_intake, run_plan, run_build, run_test, …) into scripts/lib/pipeline-stages.sh or scripts/lib/pipeline-stages/\*.sh; source from sw-pipeline.sh. | Agent | sw-pipeline.sh sources stages; line count drops; existing tests pass. |
|
|
59
|
+
| 3.2 | **Pipeline quality gate** — Extract quality gate and audit selection into scripts/lib/pipeline-quality.sh; source from sw-pipeline.sh. | Agent | Quality gate logic in one place; pipeline sources it. |
|
|
60
|
+
| 3.3 | **Daemon poll loop** — Extract daemon_poll_loop, daemon_poll_issues, daemon_reap_completed into scripts/lib/daemon-poll.sh; source from sw-daemon.sh. | Agent | Daemon sources daemon-poll; line count drops. |
|
|
61
|
+
| 3.4 | **Daemon health** — Extract health check and timeout logic into scripts/lib/daemon-health.sh. | Agent | Daemon sources daemon-health; tests pass. |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Phase 4: Cleanup (TODO / FIXME / HACK / Dead Code)
|
|
66
|
+
|
|
67
|
+
**Goal:** Triage all TODO/FIXME/HACK; remove dead code; reduce fallback count.
|
|
68
|
+
|
|
69
|
+
**Status:** 4.1–4.2 done (PLATFORM-TODO-BACKLOG.md + file:line triage one-liner). 4.3–4.4 ongoing (run hygiene dead-code; reduce fallbacks over time).
|
|
70
|
+
|
|
71
|
+
| # | Task | Owner | Acceptance |
|
|
72
|
+
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | -------------------------------------------------------- |
|
|
73
|
+
| 4.1 | **TODO/FIXME backlog** — Generate list (from platform-refactor findings); create GitHub issues for each or mark “accepted tech debt” in code; strategic can then suggest “Resolve TODO in X” as issues. | Agent | Every TODO/FIXME has an issue or comment; count tracked. |
|
|
74
|
+
| 4.2 | **HACK/KLUDGE** — Same as 4.1; replace or document. | Agent | HACK count explained or reduced. |
|
|
75
|
+
| 4.3 | **Dead code** — Run hygiene dead-code; remove or refactor unused functions/scripts. | Agent | Dead code count in hygiene report drops. |
|
|
76
|
+
| 4.4 | **Fallback reduction** — Where adaptive/learned data exists, remove duplicate hardcoded fallbacks so one code path wins (policy → adaptive → minimal default). | Agent | Fallback count in platform-refactor scan drops. |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Phase 5: Continuous (CI + Strategic + Metrics)
|
|
81
|
+
|
|
82
|
+
**Goal:** Platform health is measured and improved continuously.
|
|
83
|
+
|
|
84
|
+
**Status:** 5.1 done (shipwright-platform-health.yml with threshold gate). 5.2 done (strategic reads platform-hygiene + AGI rule). 5.3 done (doctor shows platform health counts). 5.4 done (policy.schema.json + optional ajv in CI). Policy read test added to hygiene-test.
|
|
85
|
+
|
|
86
|
+
| # | Task | Owner | Acceptance |
|
|
87
|
+
| --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | --------------------------------------------------------- |
|
|
88
|
+
| 5.1 | **Hygiene in CI** — Add a job (e.g. in shipwright-sweep or a new workflow) that runs `shipwright hygiene platform-refactor` and fails or warns if counts exceed thresholds (e.g. hardcoded > 100). | Agent | CI runs platform-refactor; optional gate. |
|
|
89
|
+
| 5.2 | **Strategic creates refactor issues** — Ensure strategic prompt and platform-hygiene input are used; run strategic periodically so it suggests platform refactor issues. | Done | Strategic already has platform health + AGI rule. |
|
|
90
|
+
| 5.3 | **Metrics dashboard** — Optional: add a small “platform health” section to dashboard or doctor showing platform-hygiene counts and trend. | Agent | Doctor or dashboard shows hardcoded/fallback/TODO counts. |
|
|
91
|
+
| 5.4 | **Policy schema** — Add JSON schema for config/policy.json and validate in CI or on load. | Agent | policy.json validated against schema. |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Current Snapshot (from platform-refactor scan)
|
|
96
|
+
|
|
97
|
+
- **hardcoded:** 58 | **fallback:** 54 | **TODO:** 37 | **FIXME:** 19 | **HACK/KLUDGE:** 17
|
|
98
|
+
- **Largest scripts:** sw-pipeline.sh (8600+), sw-daemon.sh (6000+), sw-loop.sh (2400+), sw-recruit.sh (2200+), sw-prep.sh (1600+), sw-memory.sh (1600+).
|
|
99
|
+
- _Last scan: 2026-02-16. Re-scan after helpers migration to track delta._
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Sweep defaults (Phase 2.5)
|
|
104
|
+
|
|
105
|
+
Sweep workflow (`.github/workflows/shipwright-sweep.yml`) uses hardcoded values: stuck = 4h, cron every 30min, retry template = full, retry max_iterations = 25, stuck retry = 30. These are documented in **config/policy.json** under `sweep`. To override: set env in the workflow (e.g. `STUCK_THRESHOLD_HOURS`, `RETRY_MAX_ITERATIONS`) or add a wrapper step that reads policy and exports env for the dispatch step.
|
|
106
|
+
|
|
107
|
+
## How to Use This Plan
|
|
108
|
+
|
|
109
|
+
1. **Run platform-refactor:** `shipwright hygiene platform-refactor` to refresh `.claude/platform-hygiene.json`.
|
|
110
|
+
2. **Run strategic:** `shipwright strategic run` to get AI-suggested issues (including platform refactor).
|
|
111
|
+
3. **Execute phases in order:** Phase 1 → 2 → 3 → 4 → 5; mark tasks done in this doc or in issues.
|
|
112
|
+
4. **Policy first:** Any new tunable goes in config/policy.json; scripts use policy_get or jq.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## References
|
|
117
|
+
|
|
118
|
+
- **STRATEGY.md** — P6 Platform Self-Improvement, Technical Principle 8 (AGI-level criterion).
|
|
119
|
+
- **config/policy.json** — Central policy schema.
|
|
120
|
+
- **docs/config-policy.md** — Policy usage and roadmap.
|
|
121
|
+
- **scripts/lib/policy.sh** — policy_get helper.
|
|
122
|
+
- **scripts/lib/helpers.sh** — Canonical colors and output helpers.
|