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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions skills/WORKFLOW.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,12 +196,16 @@ shared task state, so any environment reads it and continues an in-flight task.
Workflow skills read and write Mind state via **workspace-root-relative** paths
that resolve from any sibling repo:

- `PyAutoMind/active.md`, `PyAutoMind/planned.md`, `PyAutoMind/complete.md`
- `PyAutoMind/active.md`, `PyAutoMind/planned.md`, `PyAutoMind/complete.md` (ledgers)
- Prompt **files** advance `draft/ → active/ → complete/<YYYY>/<MM>/` in lockstep
with the ledgers; `PyAutoMind/scripts/lifecycle.py` owns the moves (`move`) and
drift-checks them (`check`). See `PyAutoMind/complete/AGENTS.md` (issue #71).
- `source PyAutoMind/scripts/prompt_sync.sh` → `prompt_sync_push "<msg>"` (commit+push registry)

`active.md` task schema, `complete.md` schema, and the prompt taxonomy
(`feature/<target>/`, `bug/<target>/`, …) are documented in `PyAutoMind/README.md`.
**The first folder is the work type, the second is the target repo/domain.**
(`draft/feature/<target>/`, `draft/bug/<target>/`, …) are documented in
`PyAutoMind/README.md`. **Under `draft/`, the first folder is the work type, the
second is the target repo/domain.**

## Worktree / branch model (local-dev)

Expand Down
11 changes: 6 additions & 5 deletions skills/intake/intake.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ dev workflow (issue, branch, plan). Do not bypass the Brain.
fields, inserts them in place with all prose verbatim, reports re-home
suggestions instead of ever moving files. Dry-run proposes; `--apply` writes
(then regenerate the dashboard).
- `bin/pyauto-brain intake reconcile [prefix]` — ranks backlog prompts that
look already-shipped (cross-referenced against `complete.md` and `issued/`;
a stale hand-set `Status:` is a signal, never proof). Always read-only:
verify each suspect against the target repo's git log / merged PRs, then
retire it to `issued/` by hand.
- `bin/pyauto-brain intake reconcile [prefix]` — ranks backlog (`draft/`)
prompts that look already-shipped (cross-referenced against the `complete/`
archive — or the legacy `complete.md` until retired — and `active/`; a stale
hand-set `Status:` is a signal, never proof). Always read-only: verify each
suspect against the target repo's git log / merged PRs, then retire it to the
`complete/` archive by hand (it is already done).

## Boundary

Expand Down
12 changes: 10 additions & 2 deletions skills/ship_library/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,14 @@ push Mind. Do **not** move to `complete.md`.

**Shipped (option iii passed):** offer to merge the library PR
(`gh pr merge <n> --merge --auto`), post a "Shipped" comment (PRs, summary,
optional session notes), move the entry from `active.md` to `complete.md`
(`issue`, `completed: <date>`, `library-pr:`), and push Mind with
optional session notes), then record completion in **both** lifecycle layers
(issue #71) — the ledger entry **and** the prompt file move in lockstep:
- **Ledger:** move the entry from `active.md` to `complete.md` (`issue`,
`completed: <date>`, `library-pr:`).
- **File:** advance the prompt from `active/` to `complete/<YYYY>/<MM>/` —
`python3 PyAutoMind/scripts/lifecycle.py move <name> --date <completed> --apply`
(writes the rich record there; the `active/` file no longer lingers as it did
under the old `issued/`).

Then push Mind with
`prompt_sync_push "prompt: ship <task-name> (#<issue>) → complete"`.
11 changes: 10 additions & 1 deletion skills/ship_workspace/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,23 @@ SHIP_EOF
)"
```

4. Move the task from `active.md` to `complete.md`:
4. Record completion in **both** lifecycle layers (issue #71): the ledger entry
**and** the prompt file, in lockstep.

**Ledger** — move the task from `active.md` to `complete.md`:

```markdown
## <task-name>
- issue: <issue-url>
- completed: <YYYY-MM-DD>
- library-pr: <library PR URL — if linked>
- workspace-pr: <workspace PR URL(s)>
```

**File** — advance the prompt from `active/` to `complete/<YYYY>/<MM>/`:

```bash
python3 PyAutoMind/scripts/lifecycle.py move <name> --date <YYYY-MM-DD> --apply
```

Push Mind: `prompt_sync_push "prompt: ship <task-name> (#<issue>) → complete"`.
Expand Down
15 changes: 9 additions & 6 deletions skills/start_dev/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,15 @@ issue** — instead:
parens; bare `<work-type>/<target>/<name>.md` or pre-migration
`<target>/<name>.md` paths). Dedupe, resolve `../` relative to the tracker,
skip self-references inside `z_features/`.
2. **Status each sub-prompt:**
- exists at `PyAutoMind/<path>` → **not yet issued**;
- exists at `PyAutoMind/issued/<basename>` → **issued**; derive task-name
candidates from the filename stem (`_`→`-`) and from `## <task-name>`
headings, grep `PyAutoMind/complete.md` for `^## <candidate>$` → match =
**shipped** (record heading + PR URL); no match = **in flight**;
2. **Status each sub-prompt** (lifecycle states, issue #71):
- exists at `PyAutoMind/draft/<path>` (or a legacy bare path) → **not yet
issued**;
- exists at `PyAutoMind/active/<basename>` (or legacy `issued/<basename>`
during the transition) → **issued**; derive task-name candidates from the
filename stem (`_`→`-`) and from `## <task-name>` headings, then check
shipped-ness: a `complete/<YYYY>/<MM>/<candidate>.md` record (or, until
`complete.md` is retired, `^## <candidate>$` in `PyAutoMind/complete.md`)
→ **shipped** (record heading + PR URL); no match = **in flight**;
- neither → **unknown** (link rot — warn).
3. **Report** a table (Sub-prompt | Status | Notes) + summary line
`N shipped / M in flight / K not yet issued / U unknown`.
Expand Down
4 changes: 2 additions & 2 deletions skills/start_dev/start_dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ Generate a concise title (<70 chars, conventional prefix where apt), then
**delegate the issue write to `/create_issue`** (the PyAutoMind issue+registry
primitive) — pass it the classified primary repo, title, two-level plan, and
suggested branch. It assembles the body, creates the issue (after review), moves
the prompt to `issued/`, and pushes Mind. Do **not** re-implement issue creation
the prompt to `active/`, and pushes Mind. Do **not** re-implement issue creation
here. Registration in `active.md` is conflict-dependent (next step), so tell
`/create_issue` to **skip its active.md registration** — start_dev owns that
routing decision.
Expand All @@ -146,7 +146,7 @@ classification.

### 7. Push Mind state

`/create_issue` already pushed the issue + `issued/` move; push the routing
`/create_issue` already pushed the issue + `active/` move; push the routing
registration (active.md / planned.md) added in step 6:

```bash
Expand Down