Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .agents/skills/bold-build-status/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-build-status
description: "Bold: Report task/gate/artifact status for the active feature."
---

# bold-build-status

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/build/status.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/build/status.md`
3. `.bold/commands/build/status.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-gate-status.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-build/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-build
description: "Bold: Apply the ratified tier's gate set, execute, then keep artifacts continuously in sync."
---

# bold-build

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/build/default.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/build/default.md`
3. `.bold/commands/build/default.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-gate-status.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-install/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-install
description: "Bold: Fetch, preview, and sync Bold's payload into this repo (fresh install, upgrade, or already-current), then hand off to bold.plan init."
---

# bold-install

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/install/default.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/install/default.md`
3. `.bold/commands/install/default.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector (no collector for this subcommand — it reads only what's already on disk) before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-analyze/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-analyze
description: "Bold: Check the active feature's spec for internal consistency, duplication, ambiguity, and requirement/task coverage."
---

# bold-plan-analyze

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/analyze.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/analyze.md`
3. `.bold/commands/plan/analyze.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-triage-context.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-checklist/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-checklist
description: "Bold: Generate or verify a checklist that tests the quality of the spec's requirements, not the implementation."
---

# bold-plan-checklist

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/checklist.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/checklist.md`
3. `.bold/commands/plan/checklist.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector (no collector for this subcommand — it reads only what's already on disk) before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-clarify/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-clarify
description: "Bold: Re-run the clarification pass on the active feature's spec."
---

# bold-plan-clarify

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/clarify.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/clarify.md`
3. `.bold/commands/plan/clarify.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector (no collector for this subcommand — it reads only what's already on disk) before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-critic/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-critic
description: "Bold: Adversarial risk critique of the active feature's spec — what will fail in production, gated at Feature tier."
---

# bold-plan-critic

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/critic.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/critic.md`
3. `.bold/commands/plan/critic.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-triage-context.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-discover/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-discover
description: "Bold: Read-only brownfield archaeology — mine configs and history, infer conventions, play back findings for ratification."
---

# bold-plan-discover

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/discover.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/discover.md`
3. `.bold/commands/plan/discover.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-brownfield-signals.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-init/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-init
description: "Bold: Detect repo entry path (migrate / discover / greenfield) and route accordingly."
---

# bold-plan-init

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/init.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/init.md`
3. `.bold/commands/plan/init.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-entry-path-context.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan-tasks/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan-tasks
description: "Bold: Regenerate the task breakdown for the active feature's ratified spec, or merge in gate remediation on a re-run."
---

# bold-plan-tasks

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/tasks.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/tasks.md`
3. `.bold/commands/plan/tasks.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector (no collector for this subcommand — it reads only what's already on disk) before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-plan/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-plan
description: "Bold: Triage the request, get the tier ratified, and produce the tier-appropriate planning artifact."
---

# bold-plan

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/plan/default.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/plan/default.md`
3. `.bold/commands/plan/default.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-triage-context.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-ship-address/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-ship-address
description: "Bold: Respond to review findings on the active feature's open PR."
---

# bold-ship-address

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/ship/address.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/ship/address.md`
3. `.bold/commands/ship/address.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-pr-review-context.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-ship-harvest/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-ship-harvest
description: "Bold: Classify feature artifacts — promote durable knowledge, archive work products, reconcile stale docs."
---

# bold-ship-harvest

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/ship/harvest.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/ship/harvest.md`
3. `.bold/commands/ship/harvest.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-harvest-inventory.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-ship-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-ship-review
description: "Bold: Review pass over the active feature's changes before or after a PR is opened."
---

# bold-ship-review

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/ship/review.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/ship/review.md`
3. `.bold/commands/ship/review.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-ship-context.{sh,ps1}` before anything else.
16 changes: 16 additions & 0 deletions .agents/skills/bold-ship/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: bold-ship
description: "Bold: Draft a PR (or finalize the deliverable, for non-code domains) for the active feature."
---

# bold-ship

Resolve the effective prompt via Bold's three-tier resolution (user > team > source —
see `.bold/scripts/*/bold-which.*`):

1. `.bold-user/{your-git-user-name}/commands/ship/default.md` (run `bold-which` to resolve the exact slug and path)
2. `bold-docs/overrides/commands/ship/default.md`
3. `.bold/commands/ship/default.md`

Read whichever resolves first and follow it as your instructions for this invocation,
including running its declared collector `.bold/scripts/{bash,powershell}/collect-ship-context.{sh,ps1}` before anything else.
5 changes: 5 additions & 0 deletions .archive/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Archive Index

| Date | Feature | Archived | Promoted to system/ |
|---|---|---|---|
| 2026-07-09 | devspark-to-bold-migration | `copilot/harvest-2026-04-19.md` (DevSpark harvest report for `001-dependency-hygiene-hardening`), `devspark-runs/run_20260419T133325Z_44d25f/` (DevSpark harness execution trace for the same feature), `repo-story/` (3 generated repo-narrative reports), `git-spark-lifecycle.harness.yaml` (DevSpark harness spec, single-feature-scoped, feature already shipped and harvested) | `bold-docs/backbone.md`, `bold-docs/project.json`, `bold-docs/system/tech-stack.md`, `bold-docs/system/adr.md`, `bold-docs/system/constitution-history.md` |
3 changes: 3 additions & 0 deletions .bold-user/mark-hazleton/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# mark-hazleton

Personal, committed overrides for this contributor — three-tier resolution checks this directory first (user > team > source). Whole-file replacement only; see bold-tool-plan.md §5.3.
54 changes: 54 additions & 0 deletions .bold/commands/FORMAT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Neutral Prompt Format

The schema every file under `source/commands/` follows. Read this before writing a new command or subcommand.

## Layout

One file per subcommand: `source/commands/{plan,build,ship}/{subcommand}.md`. The bare command (`bold.plan` with no subcommand) lives at `{command}/default.md`. See `bold-docs/features/0001-neutral-prompt-format/spec.md` for why (whole-file override replacement per plan §5.3 means subcommand-level granularity, not one file per top-level command).

`source/commands/install/default.md` (`bold.install`) is a deliberate fourth entry, not a widening of the three frozen methodology verbs (§18 risk table) — it's pre-methodology bootstrap: the payload-sync step that has to exist before `plan`/`build`/`ship` are on disk to run at all. It reuses the same `bold.<verb>` frontmatter shape purely so the existing slug/adapter-generation machinery (`generate-adapters.{sh,ps1}`, `generate-site.{sh,ps1}`) needs no bespoke handling — treat the `command: bold.install` value as tooling convenience, not a claim that installation is a fourth thing Bold's methodology does.

## File shape

```markdown
---
command: bold.plan
subcommand: critic
description: One line — what this subcommand does.
collector: collect-triage-context # or: none, with a comment explaining why
args:
- name: --strict
description: What the flag changes.
values: [optional, enum, list] # omit if free-form
---

# bold.plan critic

Agent-neutral markdown body.
```

### Frontmatter fields

| Field | Required | Notes |
|---|---|---|
| `command` | yes | `bold.plan` / `bold.build` / `bold.ship` |
| `subcommand` | yes | `default` for the bare command |
| `description` | yes | One line; this is what an adapter generator turns into the host's command description |
| `collector` | yes | The collector script's base name (no extension — both `source/scripts/bash/{name}.sh` and `source/scripts/powershell/{name}.ps1` must exist), or the literal `none` if the subcommand's only input is a file already on disk. Never omit the field — an absent collector should be a stated decision, not a gap |
| `args` | yes (may be empty `[]`) | Flags the subcommand accepts, each with a one-line `description` |

### Body

- Markdown, no host-specific syntax — no Claude Code frontmatter keys, no Copilot directives, no Cursor rule syntax. Anything host-specific belongs in `adapters/`, not here.
- Open with a short statement of purpose, then boundaries (success criteria, halt conditions) — not a scripted step-by-step procedure the model would handle sensibly on its own (backbone principle: guardrails bound the space, never script the path).
- **A `## Definition of Done` section is required.** Plan §1 is explicit: "no prompt without success criteria either... Prompts are components with contracts, not text that gets eyeballed and shipped." One to three sentences stating what "done" concretely means for this subcommand — specific enough that a different agent run against the same input would recognize the same stopping point. Not a restatement of the body's steps; a test you could check the output against afterward.
- The Product Owner TL;DR requirement (plan §8) lives in the body wherever this subcommand instructs the agent to produce a durable artifact — it's part of what the methodology produces, not adapter-injected boilerplate.
- Reference collector output fields by name (e.g. `active_features`, `backbone_principles`) rather than re-describing how to gather them — the collector already did that.

## Collector convention

Collector scripts emit single-line JSON to stdout, one pair per platform: `source/scripts/bash/{name}.sh` and `source/scripts/powershell/{name}.ps1`, verified to produce equivalent output. Shared parsing logic (feature inventory, backbone principle status, system-doc inventory) lives in `source/scripts/bash/lib/common.sh` and `source/scripts/powershell/lib/Common.ps1` — reach for those before duplicating a scan across a third script.

## Worked examples

All 14 files under `source/commands/{plan,build,ship}/` follow this schema and are the reference set — `plan/default.md` (the triage flow) is the most heavily annotated. `install/default.md` also follows it but is the one legitimate exception to the collector rule above — see its own file for why.
26 changes: 26 additions & 0 deletions .bold/commands/WAIVERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Waiver Format

How a deliberate, ratified exception to an `enforced` backbone principle gets recorded. Read this before writing or parsing a waiver.

## Where it lives

Waivers are recorded in the work item's own artifact — the feature's `spec.md` (or the mini-spec / patch log entry for lower tiers) — under a `## Waivers` heading. They travel with the work, not in a separate ledger, so they're visible wherever the feature is visible.

## Format

One line per waiver, under `## Waivers`:

```
- Waiver: principle=<N> reason="<why the exception is acceptable>" ratified_by="<human name or role>" date=<YYYY-MM-DD>
```

- `principle` — the backbone principle's number (matches its position in `backbone.md`'s `## Principles` list)
- `reason` — why the violation is accepted, not what was violated (the principle number already says that)
- `ratified_by` — a human accepted this; the tool never waives on its own (backbone principle: the tool proposes, the human ratifies)
- `date` — when it was ratified

## Who writes and reads it

- `bold.plan critic` and `bold.build` (default) write a waiver when a human accepts a flagged risk instead of fixing it.
- `bold.ship` (default) surfaces every open waiver in the PR body — a waiver is a visible tradeoff, not a way to make a gate quietly disappear.
- Collectors parse `- Waiver: ...` lines from each feature's `spec.md` into `active_features[].waivers` (see `source/scripts/{bash,powershell}/lib/`).
Loading
Loading