Skip to content
Closed
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,14 @@ Shared config and agent-facing docs the scaffold copies (or, for the docs, `@`-i
| [`habit-hooks/java/guides/`](./presets/habit-hooks/java/guides/) | per-smell coaching for the Java sensor — concrete "fix toward this", rendered inline in-loop *and* in CI |
| [`pmd/ruleset.xml`](./presets/pmd/) · `pmd/no-var.xml` | tuned Java ruleset (`ExcessiveParameterList` ≥ 8) + the no-`var` rule |
| [`gitleaks.toml`](./presets/gitleaks.toml) · [`renovate.json`](./presets/renovate.json) | secret-scan allowlist starting point + the dependency-update path the "pin everything" rule needs |
| [`code-standards.md`](./presets/code-standards.md) · [`collaboration.md`](./presets/collaboration.md) · [`agent-loop.md`](./presets/agent-loop.md) | agent-facing standing docs — clean code (functions do one thing / SRP), working discipline (branch hygiene + sub-agents), and the self-correcting loop (observe → fix the cause → verify → repeat until green *and* honest) |
| [`ticket-schema.md`](./presets/ticket-schema.md) · [`ISSUE_TEMPLATE/agent-feature.yml`](./presets/ISSUE_TEMPLATE/agent-feature.yml) | the GitHub-Issue ticket the `/feature` driver works — intent, an acceptance-criteria checklist, scope, pointers. Copy the template into a consumer's `.github/ISSUE_TEMPLATE/` |
| [`code-standards.md`](./agent-docs/code-standards.md) · [`collaboration.md`](./agent-docs/collaboration.md) · [`agent-loop.md`](./agent-docs/agent-loop.md) | agent-facing standing docs — clean code (functions do one thing / SRP), working discipline (branch hygiene + sub-agents), and the self-correcting loop (observe → fix the cause → verify → repeat until green *and* honest) |
| [`ticket-schema.md`](./templates/ticket-schema.md) · [`ISSUE_TEMPLATE/agent-feature.yml`](./templates/ISSUE_TEMPLATE/agent-feature.yml) | the GitHub-Issue ticket the `/feature` driver works — intent, an acceptance-criteria checklist, scope, pointers. Copy the template into a consumer's `.github/ISSUE_TEMPLATE/` |

### From ticket to PR — the `/feature` driver

Foundry answers *"when is a change done?"* — a green gate. The **`/feature`** driver is the thing in front of that — **ticket in, PR out** — the [`feature`](https://github.com/CMaintz/cmaintz-skills) skill in cmaintz-skills, specified in [designs/backlog-feature-driver.md](./designs/backlog-feature-driver.md). Foundry ships the intake it consumes (the schema + issue template above); the driver:

1. **Claim** an `agent:ready` ticket — a GitHub Issue on the [`agent-feature`](./presets/ISSUE_TEMPLATE/agent-feature.yml) form ([schema](./presets/ticket-schema.md)) — flipping it to `agent:working` (atomic, WIP = 1) in its own worktree off `origin/main`.
1. **Claim** an `agent:ready` ticket — a GitHub Issue on the [`agent-feature`](./templates/ISSUE_TEMPLATE/agent-feature.yml) form ([schema](./templates/ticket-schema.md)) — flipping it to `agent:working` (atomic, WIP = 1) in its own worktree off `origin/main`.
2. **Loop to the gate** — implement → `mise run gate` → act on the failure + habit-hooks coaching → retry, *bounded* (≤ 5 cycles; bail early on no progress, posting the stuck state to the issue thread and flipping `agent:blocked`).
3. **Verify** the result against the ticket's acceptance-criteria checklist — green ≠ correct.
4. **Hand to `/ship`** — which re-gates, runs a fresh-context review against the linked issue, commits, and opens the PR. The driver never opens a PR itself, so there's one trusted path to `main`.
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions designs/backlog-feature-driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ preset artifacts in `foundry`. So:
| Artifact | Repo | Path |
|---|---|---|
| The `/feature` driver skill | `cmaintz-skills` | `skills/feature/SKILL.md` (+ helpers) |
| GitHub issue template | `foundry` | `presets/ISSUE_TEMPLATE/agent-feature.yml` |
| Ticket schema (reference) | `foundry` | `presets/ticket-schema.md` |
| GitHub issue template | `foundry` | `templates/ISSUE_TEMPLATE/agent-feature.yml` |
| Ticket schema (reference) | `foundry` | `templates/ticket-schema.md` |
| Inventory entry | `foundry` | `FEATURES.md` (same session) |

Adding a skill is **additive** under CONTRACT versioning — no major bump.
Expand Down
2 changes: 1 addition & 1 deletion scripts/setup-labels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set -euo pipefail

label() { gh label create "$1" --color "$2" --description "$3" --force >/dev/null && echo " label: $1"; }

# Ticket state machine — the /feature driver and repo-align (see presets/ticket-schema.md)
# Ticket state machine — the /feature driver and repo-align (see templates/ticket-schema.md)
label "agent:ready" 0e8a16 "Groomed, complete, free to claim"
label "agent:working" fbca04 "Claimed and assigned (WIP=1)"
label "agent:blocked" d93f0b "Escalated to a human; reason in the issue thread"
Expand Down
File renamed without changes.
Loading