diff --git a/AGENTS.md b/AGENTS.md index 35c7a1e..1569211 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,9 +5,18 @@ this repository. ## What this repo is -**PyAutoPrompt is the starting point of the PyAuto workflow.** Every task that -ends up as a PR in PyAutoConf, PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens, -or any of the `*_workspace*` repos begins as a markdown file here. +**PyAutoMind is the Mind of the PyAuto organism and the starting point of the +PyAuto workflow.** It holds the organism's ideas, intent, goals, priorities and +workflow state. Every task that ends up as a PR in PyAutoConf, PyAutoFit, +PyAutoArray, PyAutoGalaxy, PyAutoLens, or any of the `*_workspace*` repos begins +as a markdown file here. + +This repository was renamed from **PyAutoPrompt** to **PyAutoMind**; the role is +unchanged, but it is now framed as the organism's Mind (intent and direction) +rather than merely a prompt store. The organism's other organs are the Brain +(PyAutoBrain — reasoning and planning), the Hands (PyAutoBuild — execution), the +Heart (PyAutoHeart — health and readiness) and Memory (PyAutoMemory — accumulated +knowledge). See [README.md](README.md) for the full picture. For the full workflow narrative, conventions, and registry schemas, read [README.md](README.md). The summary below is just enough to operate. diff --git a/README.md b/README.md index c75d366..07379be 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,65 @@ -# PyAutoPrompt +# PyAutoMind -**The starting point of the PyAuto workflow.** +**The Mind of the PyAuto organism — its ideas, intent, goals and priorities.** -Every piece of work in the PyAuto ecosystem starts as a markdown file -describing a task in **plain English**. You write what you want — that's it. -An AI agent (or a human) picks it up and turns it into a tracked GitHub issue, -a feature branch, and a merged pull request. +The PyAuto ecosystem is evolving into a software organism, and this repository +is its **Mind**: the place where the organism's *ideas, intentions, goals, +priorities and future direction* are captured. Although it began life as a +prompt repository, it has grown into the home of everything the organism *wants +to become* — ideas, prompts, active and completed work, planning, priorities, +workflow state and project direction. + +It is still the **starting point of the PyAuto workflow**. Every piece of work +in the ecosystem starts here as a markdown file describing an intent in **plain +English**. You write what you want — that's it. An AI agent (or a human) picks +it up and turns it into a tracked GitHub issue, a feature branch, and a merged +pull request. No template to fill in, no special syntax. **If you can describe the change in a GitHub issue, you can drive the workflow.** +The Mind decides *what* the organism wants to become; the Brain +([PyAutoBrain, currently the PyAutoAgent repo](https://github.com/PyAutoLabs/PyAutoAgent)) +decides *how* to achieve it. See [The PyAuto organism](#the-pyauto-organism) below. + +## The PyAuto organism + +The PyAuto ecosystem is organised as a software **organism**, with each +repository playing the role of an organ: + +``` + Mind → Brain → Hands → Heart + ideas reasoning execution health + intent & planning & delivery & readiness + goals + priorities ↘ ↙ + Memory + accumulated knowledge +``` + +| Organ | Repository | Role | +|-------|------------|------| +| **Mind** | **PyAutoMind** (this repo) | What the organism *wants to become*: ideas, intent, goals, priorities, future work. | +| **Brain** | [PyAutoBrain](https://github.com/PyAutoLabs/PyAutoAgent) *(repo currently named PyAutoAgent)* | *How* to achieve those goals: reasoning, planning, routing work. | +| **Hands** | [PyAutoBuild](https://github.com/PyAutoLabs/PyAutoBuild) *(the "Hands")* | Execution and delivery: building, testing, releasing. | +| **Heart** | [PyAutoHeart](https://github.com/PyAutoLabs/PyAutoHeart) | Health and release-readiness: monitoring, checks, the "is it safe to ship?" gate. | +| **Memory** | [PyAutoMemory](https://github.com/PyAutoLabs/PyAutoPaper) *(repo currently named PyAutoPaper)* | Accumulated knowledge: papers, wikis, reference material. | + +> The organism names (PyAutoBrain, PyAutoMemory) are the target identities; some +> repos are mid-rename, so the links point at the current repository names noted +> in italics. PyAutoBuild ("Hands") and PyAutoHeart keep their repository names. + +**Why this repository is the Mind.** Work in PyAuto begins as *intent* — an +idea, a goal, a priority — long before it becomes code. This repository is where +that intent lives and is shaped: raw ideas in `ideas.md`, scoped intentions as +prompt files, the priorities that order them, and the workflow state that tracks +what the organism is currently pursuing. It does not reason about *how* to build +something (that is the Brain) or carry the work out (that is the Hands); it holds +the organism's **wants and direction**. Everything downstream — planning, +execution, health checks — flows from the intent captured here. + +--- + ## What a prompt looks like Here's a real prompt — the contents of `autoarray/psf_oversampling.md` — that @@ -130,7 +180,7 @@ Two slash commands operate over the prompt registry without starting work: ## Repository layout ``` -PyAutoPrompt/ +PyAutoMind/ ├── README.md ← this file ├── .gitignore │ @@ -315,7 +365,7 @@ The PyAuto workflow has three repos with distinct roles: | Repo | Purpose | |------|---------| -| **PyAutoPrompt** (this repo) | Prompts, registry, prompt-coupled skills. The starting point. | +| **PyAutoMind** (this repo) | The Mind: ideas, intent, goals, priorities, the prompt registry and prompt-coupled skills. The starting point. | | **admin_jammy** | Personal admin notes (`euclid.md`, `grants.md`, …) and general PyAuto tooling (`software/worktree.sh`, `software/admin_sync.sh`, generic skills like `audit_docs`, `dep_audit`, `repo_cleanup`). | | **PyAutoPaper** | Personal paper-management repo: source PDFs (gitignored) plus topical LLM wikis (`lensing_wiki/`, `smbh_wiki/`, `cti_wiki/`, `methods_wiki/`, `galaxies_wiki/`) and a reading queue (`reading-queue.md`, moved from `admin_jammy/papers.md`). | | **`PyAuto*` libraries and `*_workspace*` repos** | Where the actual code work happens. Each task gets a feature branch + worktree under `~/Code/PyAutoLabs-wt//`. | @@ -323,7 +373,7 @@ The PyAuto workflow has three repos with distinct roles: Helper scripts that this repo's skills source: - `admin_jammy/software/worktree.sh` — task worktree management (create, remove, conflict check). -- `admin_jammy/software/admin_sync.sh` — admin_jammy/PyAutoPrompt sync helpers. +- `admin_jammy/software/admin_sync.sh` — admin_jammy/PyAutoMind sync helpers. These intentionally live in `admin_jammy/software/` because they're general multi-repo tooling, not prompt-specific. The skills that need them source by @@ -335,11 +385,28 @@ absolute path. ```bash cd ~/Code/PyAutoLabs -git clone git@github.com:PyAutoLabs/PyAutoPrompt.git +# Until the GitHub-side rename (PyAutoPrompt -> PyAutoMind) lands, clone the old +# URL into a PyAutoMind/ directory: the old URL works now and redirects after the +# rename, and the documented commands all assume a `PyAutoMind/` checkout. Once +# the rename lands, `git clone git@github.com:PyAutoLabs/PyAutoMind.git` works too. +git clone git@github.com:PyAutoLabs/PyAutoPrompt.git PyAutoMind git clone git@github.com:Jammy2211/admin_jammy.git # if not already present bash admin_jammy/skills/install.sh # symlinks skills + commands ``` +> **Note on the rename.** This repository is being renamed from **PyAutoPrompt** +> to **PyAutoMind**. The GitHub-side rename is a separate admin action; once it +> lands, GitHub redirects the old `PyAutoLabs/PyAutoPrompt` URL to the new one, so +> existing clones keep working — update your remote with +> `git remote set-url origin git@github.com:PyAutoLabs/PyAutoMind.git`. +> +> **The local checkout directory must be named `PyAutoMind`** (or symlinked with +> `ln -s PyAutoPrompt PyAutoMind`). The skill and script docs reference +> `PyAutoMind/...` paths directly — e.g. `source PyAutoMind/scripts/prompt_sync.sh` +> and `git -C PyAutoMind …` — so a directory still named `PyAutoPrompt` will break +> those commands. (The `prompt_sync.sh` fallback only covers automatic +> `PROMPT_REPO` resolution, not these literal documented paths.) + `install.sh` auto-discovers skills from both `admin_jammy/skills/` and -`PyAutoPrompt/skills/` and creates symlinks under `~/.claude/skills/` and +`PyAutoMind/skills/` and creates symlinks under `~/.claude/skills/` and `~/.claude/commands/`. Re-run any time after pulling new skills from either repo. diff --git a/autoprompt/update_renamed_repo_abouts.md b/autoprompt/update_renamed_repo_abouts.md new file mode 100644 index 0000000..9737ddd --- /dev/null +++ b/autoprompt/update_renamed_repo_abouts.md @@ -0,0 +1,48 @@ +# Update GitHub "About" descriptions for renamed organism repos + +As part of the PyAuto **organism** renames, several repositories have been (or +are being) renamed, but their GitHub **About** descriptions still describe the +old identity. Do a single pass — on the **laptop**, where `gh` and a desktop +browser are available — to bring every renamed repo's description in line with +its new organism role, then apply them. + +The repo "About" description is **not** part of the git tree, so it cannot be +changed by a normal commit/push. Set each one with the GitHub CLI from the +laptop: + +```bash +gh repo edit PyAutoLabs/ --description "" +``` + +(or via the repo's main page → the ⚙ gear next to "About" → Description). + +## Repos to update + +Organism mapping: Mind → Brain → Hands → Heart (+ Memory). + +- **PyAutoMind** (renamed from PyAutoPrompt) — + "The Mind of the PyAuto organism: ideas, intent, goals, priorities, and the + prompt registry that starts every PyAuto task." +- **PyAutoHeart** (renamed from PyAutoPulse) — + "The Heart of the PyAuto organism: health and release-readiness checking for + the PyAuto ecosystem." (confirm it already reads this way; update if not.) +- **PyAutoBrain** (to be renamed from PyAutoAgent) — + "The Brain of the PyAuto organism: reasoning, planning and routing of PyAuto + development work." +- **PyAutoMemory** (to be renamed from PyAutoPaper) — + "The Memory of the PyAuto organism: accumulated knowledge — papers, wikis and + reference material." +- **PyAutoBuild** (the "Hands"; repo name unchanged) — confirm the description + reflects its executor/build-and-release role; update only if it still reads as + an older description. + +## Notes + +- **Skip any repo whose GitHub-side rename has not yet happened.** Set its + About in the same pass that performs the rename, so the description never + points at a name that doesn't exist yet (PyAutoBrain/PyAutoMemory are pending + at the time of writing). +- Keep each description to one sentence, matching the tone of the other org + repos. +- This is a **metadata-only chore**: no code changes, no PR. Run the `gh repo + edit` commands (or use the About gear) and confirm each on the repo page. diff --git a/parked.md b/parked.md index 661f667..90127da 100644 --- a/parked.md +++ b/parked.md @@ -84,11 +84,11 @@ unindexed worktrees or stashes. Move an entry back to `active.md` (or to ## pyauto-update-digest - parked: 2026-05-17 (worktree last touched) -- classification: workflow (PyAutoPrompt) +- classification: workflow (PyAutoMind) - location: orphan worktree at ~/Code/PyAutoLabs-wt/pyauto-update-digest/ - branch: feature/pyauto-update-digest (clean, no changes) - notes: | - Orphan worktree containing only a clean PyAutoPrompt checkout on the + Orphan worktree containing only a clean PyAutoMind checkout on the branch. No staged or unstaged changes. Action: `worktree_remove pyauto-update-digest`. diff --git a/planned.md b/planned.md index ef50a15..d5c1294 100644 --- a/planned.md +++ b/planned.md @@ -1,5 +1,5 @@ ## jax-point-source-point-smoke-sentinel -- prompt: PyAutoPrompt/issued/jax_point_source_point_smoke_sentinel.md +- prompt: PyAutoMind/issued/jax_point_source_point_smoke_sentinel.md - status: planned - filed: 2026-05-21 - classification: library (triage; routing TBD by bisect) @@ -24,7 +24,7 @@ source_plane.py in the same dir — they share the seed dataset. ## nfw-truncated-potential-accuracy -- prompt: PyAutoPrompt/autogalaxy/nfw_truncated_potential_accuracy.md +- prompt: PyAutoMind/autogalaxy/nfw_truncated_potential_accuracy.md - status: planned - filed: 2026-06-05 - classification: library (accuracy bug) @@ -40,7 +40,7 @@ - PyAutoGalaxy ## piemass-potential -- prompt: PyAutoPrompt/autogalaxy/piemass_potential.md +- prompt: PyAutoMind/autogalaxy/piemass_potential.md - status: planned - filed: 2026-06-05 - classification: library (missing feature) diff --git a/scripts/prompt_sync.sh b/scripts/prompt_sync.sh index cf28395..3b091aa 100755 --- a/scripts/prompt_sync.sh +++ b/scripts/prompt_sync.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash -# prompt_sync.sh — keep PyAutoPrompt in sync with origin during task lifecycle. +# prompt_sync.sh — keep PyAutoMind in sync with origin during task lifecycle. # -# Sourced by skills that mutate PyAutoPrompt registry files (active.md, +# Sourced by skills that mutate PyAutoMind registry files (active.md, # complete.md, planned.md, queue.md, ...) so we never accumulate local-only # changes that drift from origin. # -# source PyAutoPrompt/scripts/prompt_sync.sh +# source PyAutoMind/scripts/prompt_sync.sh # prompt_sync_new_prompts # scan + commit + push new prompts # prompt_sync_push "prompt: " # commit + push current state # @@ -13,9 +13,34 @@ # multiple times in the same session. # # Replaces the previous admin_jammy/software/admin_sync.sh which operated on -# admin_jammy/prompt/. PyAutoPrompt is now the home of prompts and registry. +# admin_jammy/prompt/. PyAutoMind is now the home of prompts and registry. -PROMPT_REPO="${PROMPT_REPO:-$HOME/Code/PyAutoLabs/PyAutoPrompt}" +# An explicitly set PROMPT_REPO is always honoured as-is (a missing path then +# surfaces as a normal error rather than being silently redirected). Only when +# PROMPT_REPO is unset do we apply the default and the rename fallback below. +if [ -z "${PROMPT_REPO:-}" ]; then + PROMPT_REPO="$HOME/Code/PyAutoLabs/PyAutoMind" + + # Backwards compatibility: before the PyAutoPrompt -> PyAutoMind rename the + # repo lived at PyAutoLabs/PyAutoPrompt. If the new default path is absent but + # the old one is present (a checkout not yet renamed), fall back to it so + # sourcing still works. + if [ ! -d "$PROMPT_REPO" ] && [ -d "$HOME/Code/PyAutoLabs/PyAutoPrompt" ]; then + PROMPT_REPO="$HOME/Code/PyAutoLabs/PyAutoPrompt" + fi +fi + +# Fail loudly if PROMPT_REPO is not an actual git checkout. Without this the +# sync functions below silently no-op (git -C errors are swallowed and +# they return 0), so a missing or mis-set path would look like "nothing to sync" +# instead of a misconfiguration. Returns non-zero (we are sourced, never exit). +_prompt_sync_require_repo() { + if ! git -C "$PROMPT_REPO" rev-parse --is-inside-work-tree >/dev/null 2>&1; then + echo "prompt_sync: PROMPT_REPO is not a git checkout: $PROMPT_REPO" >&2 + echo " set PROMPT_REPO to your PyAutoMind checkout, or clone it first." >&2 + return 1 + fi +} # Commit and push any new untracked .md files at the repo root or under # category dirs as one "sync new task ideas" commit. Each new file is listed @@ -23,6 +48,7 @@ PROMPT_REPO="${PROMPT_REPO:-$HOME/Code/PyAutoLabs/PyAutoPrompt}" # Excludes issued/ (handled by prompt_sync_push when skills move files there) # and tmp/ (scratch). prompt_sync_new_prompts() { + _prompt_sync_require_repo || return 1 local untracked untracked=$(git -C "$PROMPT_REPO" ls-files --others --exclude-standard \ -- '*.md' '*/*.md' \ @@ -46,7 +72,8 @@ prompt_sync_new_prompts() { # and push. Used by skills at task milestones (issue filed, repos # registered, task shipped, etc.). No-op if nothing is staged. prompt_sync_push() { - local subject="${1:-prompt: sync PyAutoPrompt}" + _prompt_sync_require_repo || return 1 + local subject="${1:-prompt: sync PyAutoMind}" ( cd "$PROMPT_REPO" && \ git add -A && \ if git diff --cached --quiet; then return 0; fi && \ diff --git a/scripts/pyauto_audit.sh b/scripts/pyauto_audit.sh index 37274d0..08e5551 100644 --- a/scripts/pyauto_audit.sh +++ b/scripts/pyauto_audit.sh @@ -14,7 +14,7 @@ # Run on demand. Always exits 0 — informational, the user reads + decides. # # Usage: -# source ~/Code/PyAutoLabs/PyAutoPrompt/scripts/pyauto_audit.sh +# source ~/Code/PyAutoLabs/PyAutoMind/scripts/pyauto_audit.sh # pyauto-audit # # Override via env vars: diff --git a/scripts/pyauto_status.sh b/scripts/pyauto_status.sh index 9714294..7e01726 100644 --- a/scripts/pyauto_status.sh +++ b/scripts/pyauto_status.sh @@ -7,7 +7,7 @@ # under 10 seconds — fetches are parallelised one background job per repo. # # Usage: -# source ~/Code/PyAutoLabs/PyAutoPrompt/scripts/pyauto_status.sh +# source ~/Code/PyAutoLabs/PyAutoMind/scripts/pyauto_status.sh # pyauto-status # # Override the repo root (e.g. for testing) via PYAUTO_STATUS_ROOT. @@ -35,7 +35,7 @@ # Suppressed when no JSONs exist. # # Note: this shell function shares its name with the /pyauto-status slash -# command (PyAutoPrompt/skills/pyauto-status/) but lives in a different +# command (PyAutoMind/skills/pyauto-status/) but lives in a different # namespace. The slash command shows workflow registry status (planned / # active / complete tasks); this function shows git sync state. diff --git a/scripts/pyauto_status_full.sh b/scripts/pyauto_status_full.sh index c1ef078..fd650c8 100755 --- a/scripts/pyauto_status_full.sh +++ b/scripts/pyauto_status_full.sh @@ -14,7 +14,7 @@ # - Pointer to triage.md if present (free-form analytical clustering) # # Usage: -# source ~/Code/PyAutoLabs/PyAutoPrompt/scripts/pyauto_status_full.sh +# source ~/Code/PyAutoLabs/PyAutoMind/scripts/pyauto_status_full.sh # pyauto-status-full # # Override the run path (e.g. to inspect a specific historical run) @@ -22,7 +22,7 @@ # pyauto-status-full ~/Code/PyAutoLabs/PyAutoBuild/test_results/runs/2026-04-29T14-48-47Z # # Note: this shell function shares its name with the /pyauto-status-full -# slash command (PyAutoPrompt/skills/pyauto-status-full/) but lives in a +# slash command (PyAutoMind/skills/pyauto-status-full/) but lives in a # different namespace. The slash command is the conversational layer; this # function is the same data, printed straight to stdout, no Claude needed. diff --git a/scripts/status.sh b/scripts/status.sh index 5124e89..437a05c 100755 --- a/scripts/status.sh +++ b/scripts/status.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash -# PyAutoPrompt registry status. +# PyAutoMind registry status. # # Prints prompt inventory grouped by category, plus the current state of # active.md / planned.md / complete.md. # # Usage: -# bash PyAutoPrompt/scripts/status.sh [--full | --repos] +# bash PyAutoMind/scripts/status.sh [--full | --repos] # # Without args: counts + active task list + last 5 completed. # With --full: also lists every prompt under every category. diff --git a/skills/create_issue/SKILL.md b/skills/create_issue/SKILL.md index 52b6690..65df0cd 100755 --- a/skills/create_issue/SKILL.md +++ b/skills/create_issue/SKILL.md @@ -1,6 +1,6 @@ --- name: create-issue -description: Convert a prompt file from PyAutoPrompt/ into a GitHub issue with overview, plan, and starting AI prompt. +description: Convert a prompt file from PyAutoMind/ into a GitHub issue with overview, plan, and starting AI prompt. user-invocable: true --- @@ -12,7 +12,7 @@ Convert a prompt file into a tracked GitHub issue with a human-readable plan and /create-issue ``` -The path is relative to `PyAutoPrompt/`. Examples: +The path is relative to `PyAutoMind/`. Examples: - `/create-issue autofit/logging.md` - `/create-issue autoarray/psf_oversampling.md` - `/create-issue autolens/dark_matter_sight_lines.md` @@ -21,10 +21,10 @@ The path is relative to `PyAutoPrompt/`. Examples: ### 0. Sync new prompt ideas -Before reading the requested prompt, sweep up any other ideas the user has dropped into `PyAutoPrompt/` since the last task — these accumulate locally and would otherwise be lost in the next merge. +Before reading the requested prompt, sweep up any other ideas the user has dropped into `PyAutoMind/` since the last task — these accumulate locally and would otherwise be lost in the next merge. ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_new_prompts ``` @@ -32,7 +32,7 @@ prompt_sync_new_prompts ### 1. Read the prompt file -Read the file at `PyAutoPrompt/`. If the file doesn't exist, report the error and list available prompt files in that subdirectory. +Read the file at `PyAutoMind/`. If the file doesn't exist, report the error and list available prompt files in that subdirectory. ### 2. Identify target repositories @@ -166,7 +166,7 @@ Display: ### 9. Update active.md -Add a line to `PyAutoPrompt/active.md` with the issue URL and the original prompt file: +Add a line to `PyAutoMind/active.md` with the issue URL and the original prompt file: ``` : | claude --resume @@ -174,20 +174,20 @@ Add a line to `PyAutoPrompt/active.md` with the issue URL and the original promp ### 10. Move the prompt file -Move the original prompt file to `PyAutoPrompt/issued/`: +Move the original prompt file to `PyAutoMind/issued/`: ```bash -mv PyAutoPrompt/ PyAutoPrompt/issued/ +mv PyAutoMind/ PyAutoMind/issued/ ``` If a file with the same name already exists in `issued/`, append a timestamp suffix. -### 11. Push PyAutoPrompt +### 11. Push PyAutoMind -After active.md is updated and the prompt file has been moved into `issued/`, push the PyAutoPrompt state so the new entry is visible from any other machine: +After active.md is updated and the prompt file has been moved into `issued/`, push the PyAutoMind state so the new entry is visible from any other machine: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: file issue for (#)" ``` diff --git a/skills/handoff/SKILL.md b/skills/handoff/SKILL.md index 5268f2b..69c1811 100644 --- a/skills/handoff/SKILL.md +++ b/skills/handoff/SKILL.md @@ -6,7 +6,7 @@ user-invocable: true # Handoff: Cross-Environment Work Management -Automate the commit-push-status cycle when transitioning work between laptop CLI and mobile/server environments. Uses `PyAutoPrompt/active.md` as the single source of truth and git branches as the unit of work. +Automate the commit-push-status cycle when transitioning work between laptop CLI and mobile/server environments. Uses `PyAutoMind/active.md` as the single source of truth and git branches as the unit of work. ## Usage @@ -82,7 +82,7 @@ State transitions: 1. **Detect environment** (cli or mobile) -2. **Identify the active task.** Read `PyAutoPrompt/active.md` and find the task whose `location:` is `-in-progress`. If multiple tasks match, ask the user which one to park. If no task has a `location:` field yet (legacy entry), infer from context — it's likely `cli-in-progress` if on laptop. +2. **Identify the active task.** Read `PyAutoMind/active.md` and find the task whose `location:` is `-in-progress`. If multiple tasks match, ask the user which one to park. If no task has a `location:` field yet (legacy entry), infer from context — it's likely `cli-in-progress` if on laptop. 3. **For each repo in the task's `repos:` list**, commit and push working changes: @@ -132,12 +132,12 @@ State transitions: Next: update workspace scripts to use new API ``` -6. **Commit and push PyAutoPrompt** so active.md syncs across machines: +6. **Commit and push PyAutoMind** so active.md syncs across machines: ```bash - git -C PyAutoPrompt add active.md - git -C PyAutoPrompt commit -m "handoff: park → ready-for-" - git -C PyAutoPrompt push + git -C PyAutoMind add active.md + git -C PyAutoMind commit -m "handoff: park → ready-for-" + git -C PyAutoMind push ``` ### `--complete` flag @@ -155,10 +155,10 @@ If `handoff park --complete` is used: 1. **Detect environment** (cli or mobile) -2. **Pull latest PyAutoPrompt** to get current active.md: +2. **Pull latest PyAutoMind** to get current active.md: ```bash - git -C PyAutoPrompt pull --ff-only + git -C PyAutoMind pull --ff-only ``` 3. **Read `active.md`** and filter tasks where `location:` matches `ready-for-`: @@ -251,15 +251,15 @@ If `handoff park --complete` is used: 7. **Update `active.md`:** - Set `location:` to `-in-progress` - - Commit and push PyAutoPrompt + - Commit and push PyAutoMind ## `handoff status` — Show All Task Locations ### Steps -1. **Pull latest PyAutoPrompt:** +1. **Pull latest PyAutoMind:** ```bash - git -C PyAutoPrompt pull --ff-only + git -C PyAutoMind pull --ff-only ``` 2. **Read `active.md`** and display all tasks with their handoff state: @@ -321,7 +321,7 @@ When cloning repos on mobile/server, use these orgs: ## active.md Format -The handoff skill expects and maintains this format in `PyAutoPrompt/active.md`: +The handoff skill expects and maintains this format in `PyAutoMind/active.md`: ```markdown ## task-name @@ -352,5 +352,5 @@ All other fields are maintained by existing skills (start_dev, start_library, sh - The handoff skill never modifies code — it only commits existing changes, pushes, and updates active.md. - On CLI, it respects the worktree system — repos are accessed via `$WT_ROOT/`, never the main checkout. - On mobile, repos are expected to be in the current working directory (cloned fresh per session). -- `PyAutoPrompt` must be a git repo with a remote for the push/pull to work. If it's not, warn the user. +- `PyAutoMind` must be a git repo with a remote for the push/pull to work. If it's not, warn the user. - The `summary:` field is free-form text written by the user. Keep it concise — 2-3 lines max. diff --git a/skills/pyauto-status/pyauto-status.md b/skills/pyauto-status/pyauto-status.md index e36caa3..9aa2598 100755 --- a/skills/pyauto-status/pyauto-status.md +++ b/skills/pyauto-status/pyauto-status.md @@ -14,7 +14,7 @@ Show a dashboard of all active work across all repositories. Use this to check f Read all three registry files: -**`PyAutoPrompt/planned.md`** — tasks with issues created but blocked from starting: +**`PyAutoMind/planned.md`** — tasks with issues created but blocked from starting: ```markdown ## @@ -28,7 +28,7 @@ Read all three registry files: - ``` -**`PyAutoPrompt/active.md`** — tasks currently in progress: +**`PyAutoMind/active.md`** — tasks currently in progress: ```markdown ## @@ -40,7 +40,7 @@ Read all three registry files: - : ``` -**`PyAutoPrompt/complete.md`** — recently completed tasks (show last 5 for context). +**`PyAutoMind/complete.md`** — recently completed tasks (show last 5 for context). ### 2. Live scan all repositories and worktrees @@ -202,7 +202,7 @@ Based on the flags, suggest next steps: - Otherwise → **mobile mode** (follow this section) **Mobile behavior:** -1. Pull latest `PyAutoPrompt` to get current registry files +1. Pull latest `PyAutoMind` to get current registry files 2. Read `planned.md`, `active.md`, and `complete.md` as normal 3. For each repo listed in active tasks, check branch state via GitHub API instead of local git: ```bash diff --git a/skills/register_and_iterate/register_and_iterate.md b/skills/register_and_iterate/register_and_iterate.md index 7e14a86..5ec5c06 100644 --- a/skills/register_and_iterate/register_and_iterate.md +++ b/skills/register_and_iterate/register_and_iterate.md @@ -9,10 +9,10 @@ gates. ``` /register_and_iterate [,,...] -/register_and_iterate --queue # reads PyAutoPrompt/queue.md +/register_and_iterate --queue # reads PyAutoMind/queue.md ``` -Prompts are paths relative to `PyAutoPrompt/` (e.g. `autolens/fit_imaging_pytree_rectangular.md`). +Prompts are paths relative to `PyAutoMind/` (e.g. `autolens/fit_imaging_pytree_rectangular.md`). ## Autonomy Contract @@ -33,7 +33,7 @@ testing, and post-merge cleanup runs unattended. ### 1. Resume or start the task -Read `PyAutoPrompt/active.md`. If the prompt's derived task name is already an active +Read `PyAutoMind/active.md`. If the prompt's derived task name is already an active entry, resume it — source the worktree's `activate.sh`, verify the feature branch, continue. Otherwise invoke `/start_dev ` followed by `/start_library` logic inline (create issue, create worktree, register repos in `active.md`). @@ -44,11 +44,11 @@ The derived task name is the filename stem (e.g. `fit_imaging_pytree_rectangular ### 2. Check dependencies Parse the prompt's `__Depends on__` section. For each dependency, verify it appears in -`PyAutoPrompt/complete.md`. If a dependency is missing, stop and tell the user: +`PyAutoMind/complete.md`. If a dependency is missing, stop and tell the user: ``` Cannot start : dependency has not shipped. - Dependency prompt: PyAutoPrompt/ + Dependency prompt: PyAutoMind/ Run /register_and_iterate on the dependency first, or remove it from this queue. ``` @@ -160,7 +160,7 @@ and start the next prompt. If queue is empty, print a final summary and stop. ## Queue Mode -When invoked with `--queue`, read the queue from `PyAutoPrompt/queue.md`: +When invoked with `--queue`, read the queue from `PyAutoMind/queue.md`: ```markdown # Pytree variant queue diff --git a/skills/ship_library/SKILL.md b/skills/ship_library/SKILL.md index 8ac07ae..766b1bc 100644 --- a/skills/ship_library/SKILL.md +++ b/skills/ship_library/SKILL.md @@ -1,6 +1,6 @@ --- name: ship-library -description: Ship PyAutoLabs source-library changes. Use when Codex needs to inspect diffs, draft commit messages and PR bodies with API-change summaries, run library tests, commit, push, create pending-release PRs, analyze downstream workspace impact, update GitHub issues, and move PyAutoPrompt task state. +description: Ship PyAutoLabs source-library changes. Use when Codex needs to inspect diffs, draft commit messages and PR bodies with API-change summaries, run library tests, commit, push, create pending-release PRs, analyze downstream workspace impact, update GitHub issues, and move PyAutoMind task state. --- # Ship Library diff --git a/skills/ship_library/ship_library.md b/skills/ship_library/ship_library.md index a929a65..68c46cc 100644 --- a/skills/ship_library/ship_library.md +++ b/skills/ship_library/ship_library.md @@ -6,11 +6,11 @@ Ship source-code library changes (PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLe ### 1. Identify Affected Repositories -Read `PyAutoPrompt/active.md` to find the current task's `worktree:` field and its `repos:` list. These are the repos shipped in this session. +Read `PyAutoMind/active.md` to find the current task's `worktree:` field and its `repos:` list. These are the repos shipped in this session. ```bash source admin_jammy/software/worktree.sh -WT_ROOT="$(grep -A1 '^## ' PyAutoPrompt/active.md | grep 'worktree:' | awk '{print $3}')" +WT_ROOT="$(grep -A1 '^## ' PyAutoMind/active.md | grep 'worktree:' | awk '{print $3}')" # or simpler: WT_ROOT=~/Code/PyAutoLabs-wt/ source "$WT_ROOT/activate.sh" ``` @@ -211,10 +211,10 @@ Update `active.md` — change the task's status to `library-shipped, workspace-p Do NOT move to `complete.md`. The work is not finished yet. -Push the PyAutoPrompt update so the new status is visible from any other machine: +Push the PyAutoMind update so the new status is visible from any other machine: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: library shipped (#) — workspace-pending" ``` @@ -263,10 +263,10 @@ source "$WT_ROOT/activate.sh" Remove the entire task block from `active.md`. - Push the PyAutoPrompt update: + Push the PyAutoMind update: ```bash - source PyAutoPrompt/scripts/prompt_sync.sh + source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: ship (#) → complete" ``` diff --git a/skills/ship_workspace/SKILL.md b/skills/ship_workspace/SKILL.md index 611ab9c..038f25f 100644 --- a/skills/ship_workspace/SKILL.md +++ b/skills/ship_workspace/SKILL.md @@ -1,6 +1,6 @@ --- name: ship-workspace -description: Ship PyAutoLabs workspace and tutorial repository changes. Use when Codex needs to validate changed scripts, commit, push, create pending-release workspace PRs, enforce the library-first merge gate, cross-reference upstream library PRs, update GitHub issues, and move PyAutoPrompt task state. +description: Ship PyAutoLabs workspace and tutorial repository changes. Use when Codex needs to validate changed scripts, commit, push, create pending-release workspace PRs, enforce the library-first merge gate, cross-reference upstream library PRs, update GitHub issues, and move PyAutoMind task state. --- # Ship Workspace diff --git a/skills/ship_workspace/ship_workspace.md b/skills/ship_workspace/ship_workspace.md index dae5b07..9c463a8 100644 --- a/skills/ship_workspace/ship_workspace.md +++ b/skills/ship_workspace/ship_workspace.md @@ -8,7 +8,7 @@ This skill ships **scripts, notebooks, and configs only**. It must never touch l ### 1. Identify Affected Workspace Repositories -Read `PyAutoPrompt/active.md` to find the current task's `worktree:` field and its `repos:` list. The workspace repos listed under this task are the ones to be shipped. +Read `PyAutoMind/active.md` to find the current task's `worktree:` field and its `repos:` list. The workspace repos listed under this task are the ones to be shipped. ```bash source admin_jammy/software/worktree.sh @@ -42,7 +42,7 @@ For each affected workspace repo: - Inspect the diff (`git -C "$WT_ROOT/" diff main --stat` then `git -C "$WT_ROOT/" diff main`). - Draft a **concise commit message**. -- Check `PyAutoPrompt/active.md` for the issue URL, then fetch issue comments and look for a "Library PR Created" comment. If one exists, capture the library PR URL for inclusion in the `## Upstream PR` section. +- Check `PyAutoMind/active.md` for the issue URL, then fetch issue comments and look for a "Library PR Created" comment. If one exists, capture the library PR URL for inclusion in the `## Upstream PR` section. - Draft the **full PR body** following the PR body format below. #### PR body format @@ -151,7 +151,7 @@ If the user declines, skip merging — the PR stays open for manual review. Check these sources in order: -1. **`PyAutoPrompt/active.md`** — look for a line containing a GitHub issue URL that matches this task. +1. **`PyAutoMind/active.md`** — look for a line containing a GitHub issue URL that matches this task. 2. **PR branch name** — if the branch name matches a known issue pattern, search for issues with matching keywords. 3. **Ask the user** — if neither source works, ask for the issue URL. @@ -193,7 +193,7 @@ SHIP_EOF #### 5d. Move from `active.md` to `complete.md` -Move the entire task entry from `PyAutoPrompt/active.md` to `PyAutoPrompt/complete.md`. +Move the entire task entry from `PyAutoMind/active.md` to `PyAutoMind/complete.md`. In `complete.md`, append the completed entry: @@ -207,10 +207,10 @@ In `complete.md`, append the completed entry: Remove the entire task block from `active.md`. -Push the PyAutoPrompt update so the completion is visible from any other machine: +Push the PyAutoMind update so the completion is visible from any other machine: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: ship (#) → complete" ``` @@ -225,7 +225,7 @@ If the task has a `location:` field in `active.md`: Instead of moving to `complete.md`, run the `/handoff park` logic: - Set `location:` to `ready-for-` (cli if on mobile, mobile if on cli) - Ask for a summary of what's done and what remains - - Commit and push `PyAutoPrompt` + - Commit and push `PyAutoMind` Return the PR URL(s) to the user when done. diff --git a/skills/start_dev/SKILL.md b/skills/start_dev/SKILL.md index fb66020..fbc4c70 100644 --- a/skills/start_dev/SKILL.md +++ b/skills/start_dev/SKILL.md @@ -1,6 +1,6 @@ --- name: start-dev -description: Default entry point for PyAutoLabs development tasks, even when the user does not explicitly say start_dev. Use for requests to implement, fix, add, change, refactor, migrate, optimize, document, test, ship, or open a PR for any PyAutoLabs library, workspace, tutorial, build/release, or project-doc task. Creates or reads a PyAutoPrompt markdown prompt, creates or audits the GitHub issue, classifies library versus workspace work, surveys affected repository branches, generates the implementation plan, and registers the task before edits begin. Do not use for pure questions, reviews, status checks, or explicit workflow opt-outs. +description: Default entry point for PyAutoLabs development tasks, even when the user does not explicitly say start_dev. Use for requests to implement, fix, add, change, refactor, migrate, optimize, document, test, ship, or open a PR for any PyAutoLabs library, workspace, tutorial, build/release, or project-doc task. Creates or reads a PyAutoMind markdown prompt, creates or audits the GitHub issue, classifies library versus workspace work, surveys affected repository branches, generates the implementation plan, and registers the task before edits begin. Do not use for pure questions, reviews, status checks, or explicit workflow opt-outs. --- # Start Dev @@ -11,7 +11,7 @@ Follow the command file exactly, adapting Claude-specific references to Codex: - `/start_dev ` means use this skill with the same prompt path. - If the user gives a development task without a prompt path, first create a - concise prompt file in the appropriate `PyAutoPrompt/` category and include + concise prompt file in the appropriate `PyAutoMind/` category and include the original request verbatim, then use this skill with that prompt path. - "Plan Mode" means present the plan and wait for explicit user approval before file edits when this workflow is being used. diff --git a/skills/start_dev/agents/openai.yaml b/skills/start_dev/agents/openai.yaml index 5d0e258..4b4ad8b 100644 --- a/skills/start_dev/agents/openai.yaml +++ b/skills/start_dev/agents/openai.yaml @@ -1,6 +1,6 @@ interface: display_name: "Start Dev" short_description: "Create and route PyAuto development tasks" - default_prompt: "Use $start-dev to start a PyAutoLabs task from a PyAutoPrompt markdown file." + default_prompt: "Use $start-dev to start a PyAutoLabs task from a PyAutoMind markdown file." policy: allow_implicit_invocation: true diff --git a/skills/start_dev/start_dev.md b/skills/start_dev/start_dev.md index b3facbf..eb1e597 100644 --- a/skills/start_dev/start_dev.md +++ b/skills/start_dev/start_dev.md @@ -8,7 +8,7 @@ Universal entry point for starting work on a new task. Reads a prompt file, crea /start_dev ``` -The path is relative to `PyAutoPrompt/`. Examples: +The path is relative to `PyAutoMind/`. Examples: - `/start_dev autofit/logging.md` - `/start_dev autoarray/psf_oversampling.md` - `/start_dev autolens/dark_matter_sight_lines.md` @@ -28,7 +28,7 @@ Both of these resolve to `autogalaxy/adapt_images_pytree_fix.md`: - `autogalaxy/adapt_images_pytree_fix.md` - `autogalaxy/[adapt_images_pytree_fix.md](autogalaxy/adapt_images_pytree_fix.md)` -Read the file at `PyAutoPrompt/`. If the file doesn't exist, report the error and list available prompt files in that subdirectory. +Read the file at `PyAutoMind/`. If the file doesn't exist, report the error and list available prompt files in that subdirectory. ### 1b. z_features tracker detection (audit-only branch) @@ -36,13 +36,13 @@ If the normalized path starts with `z_features/`, do **not** treat the file as a **a. Parse the tracker for sub-prompt references.** Scan the file for: - Markdown links: `[label](relative/path.md)` — take the path inside the parens. -- Bare relative paths: `/.md` where `` is one of the known PyAutoPrompt subdirs (`autoconf/`, `autofit/`, `autoarray/`, `autogalaxy/`, `autolens/`, `autofit_workspace/`, `autogalaxy_workspace/`, `autolens_workspace/`, `autolens_workspace_test/`, `autogalaxy_workspace_test/`, `euclid_strong_lens_modeling_pipeline/`, `howtolens/`, `howtogalaxy/`, `admin_jammy/`, etc.). +- Bare relative paths: `/.md` where `` is one of the known PyAutoMind subdirs (`autoconf/`, `autofit/`, `autoarray/`, `autogalaxy/`, `autolens/`, `autofit_workspace/`, `autogalaxy_workspace/`, `autolens_workspace/`, `autolens_workspace_test/`, `autogalaxy_workspace_test/`, `euclid_strong_lens_modeling_pipeline/`, `howtolens/`, `howtogalaxy/`, `admin_jammy/`, etc.). Dedupe; resolve any `../` segments relative to the tracker's own directory. Skip references that point inside `z_features/` itself (self-references / sibling trackers). **b. Determine status for each sub-prompt.** For each referenced path: -- File exists at `PyAutoPrompt/` → **not yet issued**. -- File exists at `PyAutoPrompt/issued/` → **issued**; derive task-name candidates from the filename stem (with `_`→`-`) and from any `## ` headings inside the tracker body, then grep `PyAutoPrompt/complete.md` for `^## $`. Match → **shipped** (record the matching heading and any adjacent PR URL). No match → **in flight**. +- File exists at `PyAutoMind/` → **not yet issued**. +- File exists at `PyAutoMind/issued/` → **issued**; derive task-name candidates from the filename stem (with `_`→`-`) and from any `## ` headings inside the tracker body, then grep `PyAutoMind/complete.md` for `^## $`. Match → **shipped** (record the matching heading and any adjacent PR URL). No match → **in flight**. - File not found at either location → **unknown** (link rot — warn). **c. Report.** Print a table with one row per referenced sub-prompt: @@ -59,17 +59,17 @@ Follow with a one-line summary: `N shipped / M in flight / K not yet issued / U **d. Decide.** - **Any non-shipped entries** (in flight, not yet issued, or unknown): stop. List the remaining work and tell the user what's outstanding. Do **NOT** move the tracker. Do **NOT** run `prompt_sync_push`. -- **All shipped**: before moving anything, verify PyAutoPrompt is on `main` and otherwise clean (same guard as Step 12 — `prompt_sync_push` does `git add -A` and never switches branches). If clean, show the proposed archive command and ask the user for explicit confirmation: +- **All shipped**: before moving anything, verify PyAutoMind is on `main` and otherwise clean (same guard as Step 12 — `prompt_sync_push` does `git add -A` and never switches branches). If clean, show the proposed archive command and ask the user for explicit confirmation: ```bash - mkdir -p PyAutoPrompt/z_features/complete - mv PyAutoPrompt/z_features/ PyAutoPrompt/z_features/complete/ + mkdir -p PyAutoMind/z_features/complete + mv PyAutoMind/z_features/ PyAutoMind/z_features/complete/ ``` After the user confirms, run the move, then push: ```bash - source PyAutoPrompt/scripts/prompt_sync.sh + source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: archive completed z_features tracker — " ``` @@ -234,7 +234,7 @@ Legacy check (for tasks still on the pre-worktree flow): if the target repo's ma #### 9a. Route to planned.md (conflict — task is queued) -Add the entry to `PyAutoPrompt/planned.md` instead of `active.md`: +Add the entry to `PyAutoMind/planned.md` instead of `active.md`: ```markdown ## @@ -265,7 +265,7 @@ Skip to step 10 (move prompt file). #### 9b. Route to active.md (no conflict — task can start) -Add the entry to `PyAutoPrompt/active.md`: +Add the entry to `PyAutoMind/active.md`: ```markdown ## @@ -284,10 +284,10 @@ The `worktree:` field records where the task's worktree root will live. The dire ### 10. Move the prompt file -Move the original prompt file to `PyAutoPrompt/issued/`: +Move the original prompt file to `PyAutoMind/issued/`: ```bash -mv PyAutoPrompt/ PyAutoPrompt/issued/ +mv PyAutoMind/ PyAutoMind/issued/ ``` If a file with the same name already exists in `issued/`, append a timestamp suffix. @@ -316,12 +316,12 @@ Display: - What's blocking it and when it might clear - Reminder to run `/status` to check when repos become available -### 12. Push PyAutoPrompt +### 12. Push PyAutoMind -After active.md / planned.md and the prompt-file move are settled, push the PyAutoPrompt state so the new entry is visible from any other machine: +After active.md / planned.md and the prompt-file move are settled, push the PyAutoMind state so the new entry is visible from any other machine: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: route (#) → " ``` @@ -329,10 +329,10 @@ Substitute the actual task name, issue number, and the routing destination (`/st ## Step 0a — Sync new prompt ideas -Before reading the requested prompt, sweep up any other ideas the user has dropped into `PyAutoPrompt/` since the last task — these accumulate locally and would otherwise be lost in the next merge. +Before reading the requested prompt, sweep up any other ideas the user has dropped into `PyAutoMind/` since the last task — these accumulate locally and would otherwise be lost in the next merge. ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_new_prompts ``` @@ -340,7 +340,7 @@ prompt_sync_new_prompts ## Step 0 — Check for parked handoff tasks -Before creating a new task, check `PyAutoPrompt/active.md` for any tasks with a `location:` field matching `ready-for-`: +Before creating a new task, check `PyAutoMind/active.md` for any tasks with a `location:` field matching `ready-for-`: - On CLI (laptop): look for `location: ready-for-cli` - On mobile/server: look for `location: ready-for-mobile` diff --git a/skills/start_dev_for_user/start_dev_for_user.md b/skills/start_dev_for_user/start_dev_for_user.md index e8e523c..cf3caa7 100644 --- a/skills/start_dev_for_user/start_dev_for_user.md +++ b/skills/start_dev_for_user/start_dev_for_user.md @@ -1,6 +1,6 @@ # Start Dev For User: Pick Up a User-Filed GitHub Issue -Variant of `/start_dev` whose starting point is a GitHub issue **opened by an external user** rather than a `PyAutoPrompt/` prompt file. Same downstream routing (classify → branch survey → register → `/start_library` or `/start_workspace`), but with two extra responsibilities: +Variant of `/start_dev` whose starting point is a GitHub issue **opened by an external user** rather than a `PyAutoMind/` prompt file. Same downstream routing (classify → branch survey → register → `/start_library` or `/start_workspace`), but with two extra responsibilities: 1. **Conversational, milestone-driven updates posted back to the issue** so the reporter can follow progress without reading code or commits. 2. **An explicit clarification gate** — user-filed issues are often incomplete, so the skill stops and asks for missing info before producing a plan. @@ -30,7 +30,7 @@ These apply to every issue comment this skill (and its downstream successors) po ### 0. Check for parked handoff tasks -Identical to `/start_dev` step 0 — check `PyAutoPrompt/active.md` for any task with a `location:` field matching the current environment (`ready-for-cli` on the laptop, `ready-for-mobile` on mobile/server). If one exists, offer to resume it before starting fresh. If the user picks resume, hand off to `/handoff resume` and stop. +Identical to `/start_dev` step 0 — check `PyAutoMind/active.md` for any task with a `location:` field matching the current environment (`ready-for-cli` on the laptop, `ready-for-mobile` on mobile/server). If one exists, offer to resume it before starting fresh. If the user picks resume, hand off to `/handoff resume` and stop. ### 1. Resolve and read the issue @@ -136,7 +136,7 @@ Before producing a plan, decide whether the issue is **actionable**. Heuristics gh issue edit --repo / --add-label needs-info ``` -5. Add a partial entry to `PyAutoPrompt/active.md`: +5. Add a partial entry to `PyAutoMind/active.md`: ```markdown ## - issue: @@ -151,7 +151,7 @@ Before producing a plan, decide whether the issue is **actionable**. Heuristics once the reporter replies. ``` -7. **Stop.** Do not run plan generation, branch survey, or routing. Do not push PyAutoPrompt — the partial registration will be picked up by the next push or by the resumed run. +7. **Stop.** Do not run plan generation, branch survey, or routing. Do not push PyAutoMind — the partial registration will be picked up by the next push or by the resumed run. ### 6. Generate the plan @@ -254,7 +254,7 @@ The legacy unregistered-feature-branch warning from `/start_dev` step 9 also app #### 10a. Route to planned.md (conflict — task is queued) -Add the entry to `PyAutoPrompt/planned.md`: +Add the entry to `PyAutoMind/planned.md`: ```markdown ## @@ -288,7 +288,7 @@ Skip to step 13. #### 10b. Route to active.md (no conflict — task can start) -Add the entry to `PyAutoPrompt/active.md`: +Add the entry to `PyAutoMind/active.md`: ```markdown ## @@ -332,10 +332,10 @@ Display: **Optional third milestone comment.** Ask the developer via `AskUserQuestion` whether to post a brief "Plan looks good — starting work now" comment to the issue. Default to **not** posting unless they confirm — if they're moving straight into `/start_library`, that skill (once updated for `user-facing: true` mode) can post the "starting work" milestone instead. Posting both would be a noisy double comment. -### 13. Push PyAutoPrompt +### 13. Push PyAutoMind ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: route (#) → [user-facing]" ``` diff --git a/skills/start_library/SKILL.md b/skills/start_library/SKILL.md index 97f99d8..2553dd1 100644 --- a/skills/start_library/SKILL.md +++ b/skills/start_library/SKILL.md @@ -1,6 +1,6 @@ --- name: start-library -description: Set up PyAutoLabs source-library development after start-dev has created or registered an issue. Use when Codex needs to create or resume task worktrees for PyAutoConf, PyAutoFit, PyAutoArray, PyAutoGalaxy, or PyAutoLens, register claimed repos in PyAutoPrompt, and prepare the session for source-code edits. +description: Set up PyAutoLabs source-library development after start-dev has created or registered an issue. Use when Codex needs to create or resume task worktrees for PyAutoConf, PyAutoFit, PyAutoArray, PyAutoGalaxy, or PyAutoLens, register claimed repos in PyAutoMind, and prepare the session for source-code edits. --- # Start Library diff --git a/skills/start_library/start_library.md b/skills/start_library/start_library.md index c012b04..850ad55 100644 --- a/skills/start_library/start_library.md +++ b/skills/start_library/start_library.md @@ -38,9 +38,9 @@ If the repo appears under the **same** task (resuming work), that's fine — pro ### 2. Read the active issue -Read `PyAutoPrompt/active.md` to find the current issue URL. +Read `PyAutoMind/active.md` to find the current issue URL. -If no matching issue is found in `active.md`, check `PyAutoPrompt/planned.md` — the task may have been queued there because of a conflict when `/start_dev` ran. If found in `planned.md`: +If no matching issue is found in `active.md`, check `PyAutoMind/planned.md` — the task may have been queued there because of a conflict when `/start_dev` ran. If found in `planned.md`: 1. Re-run the conflict check (step 1) against the task's `affected-repos` 2. If the conflict is **resolved**: move the entry from `planned.md` to `active.md` (using the active.md format with `status: library-dev`) and proceed @@ -99,7 +99,7 @@ All subsequent skills (`ship_library`, `smoke_test`, etc.) source this script au ### 6. Register repos in active.md -After the worktree is created, update the task's entry in `PyAutoPrompt/active.md` to record the worktree path and claimed repos: +After the worktree is created, update the task's entry in `PyAutoMind/active.md` to record the worktree path and claimed repos: ```markdown ## @@ -117,7 +117,7 @@ The `worktree:` field is what `worktree_check_conflict` reads to detect collisio After updating active.md, push the change so other machines see the registered repos: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: register library repos in active.md" ``` diff --git a/skills/start_workspace/SKILL.md b/skills/start_workspace/SKILL.md index d885676..3bf61fc 100644 --- a/skills/start_workspace/SKILL.md +++ b/skills/start_workspace/SKILL.md @@ -1,6 +1,6 @@ --- name: start-workspace -description: Set up PyAutoLabs workspace or tutorial repository development. Use when Codex needs to attach or create workspace worktrees, inspect upstream library PR API changes, identify affected scripts, register workspace repos in PyAutoPrompt, and prepare workspace-only or library-follow-up work. +description: Set up PyAutoLabs workspace or tutorial repository development. Use when Codex needs to attach or create workspace worktrees, inspect upstream library PR API changes, identify affected scripts, register workspace repos in PyAutoMind, and prepare workspace-only or library-follow-up work. --- # Start Workspace diff --git a/skills/start_workspace/start_workspace.md b/skills/start_workspace/start_workspace.md index 8190482..07bf8bc 100644 --- a/skills/start_workspace/start_workspace.md +++ b/skills/start_workspace/start_workspace.md @@ -36,9 +36,9 @@ If the repo appears under the **same** task (resuming work), that's fine — pro ## Mode Detection -Read `PyAutoPrompt/active.md` to find the current issue URL. +Read `PyAutoMind/active.md` to find the current issue URL. -If no matching issue is found in `active.md`, check `PyAutoPrompt/planned.md` — the task may have been queued there because of a conflict when `/start_dev` ran. If found in `planned.md`: +If no matching issue is found in `active.md`, check `PyAutoMind/planned.md` — the task may have been queued there because of a conflict when `/start_dev` ran. If found in `planned.md`: 1. Re-run the conflict guard against the task's `affected-repos` 2. If the conflict is **resolved**: move the entry from `planned.md` to `active.md` (using the active.md format with `status: workspace-dev`) and proceed @@ -130,7 +130,7 @@ If the helper exits non-zero, stop and surface the failure to the user — `/shi ### L7. Register repos in active.md -Update the task's entry in `PyAutoPrompt/active.md` to add workspace repos and update status. The `worktree:` field is already present from `/start_library` — keep it as-is and just extend the `repos:` list: +Update the task's entry in `PyAutoMind/active.md` to add workspace repos and update status. The `worktree:` field is already present from `/start_library` — keep it as-is and just extend the `repos:` list: ```markdown ## @@ -151,7 +151,7 @@ The library repos from the earlier phase remain listed. The workspace repos are After updating active.md, push the change: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: register workspace repos in active.md" ``` @@ -225,7 +225,7 @@ If a branch with the same name already exists (e.g. resuming work), `worktree_cr ### S4. Register repos in active.md -Update the task's entry in `PyAutoPrompt/active.md` to add workspace repos and record the worktree path: +Update the task's entry in `PyAutoMind/active.md` to add workspace repos and record the worktree path: ```markdown ## @@ -242,7 +242,7 @@ The `worktree:` field is what `worktree_check_conflict` reads to detect collisio After updating active.md, push the change: ```bash -source PyAutoPrompt/scripts/prompt_sync.sh +source PyAutoMind/scripts/prompt_sync.sh prompt_sync_push "prompt: register standalone-workspace repos in active.md" ``` diff --git a/skills/worktree_status/SKILL.md b/skills/worktree_status/SKILL.md index a15abb0..724a6ca 100644 --- a/skills/worktree_status/SKILL.md +++ b/skills/worktree_status/SKILL.md @@ -1,6 +1,6 @@ --- name: worktree_status -description: Show the state of every task-scoped git worktree under ~/Code/PyAutoLabs-wt/, cross-referenced with PyAutoPrompt/active.md. Use this to see which parallel tasks are in flight and which repos each one is holding. +description: Show the state of every task-scoped git worktree under ~/Code/PyAutoLabs-wt/, cross-referenced with PyAutoMind/active.md. Use this to see which parallel tasks are in flight and which repos each one is holding. --- # Worktree Status @@ -95,7 +95,7 @@ If there are no warnings, omit the Warnings section entirely. Only if warnings are present: - **Orphan:** "Run `worktree_remove ` if this work is abandoned. Otherwise, re-register it in `active.md`." -- **Missing:** "Edit `PyAutoPrompt/active.md` to remove the stale entry, or re-create the worktree with `worktree_create ` if the work is resuming." +- **Missing:** "Edit `PyAutoMind/active.md` to remove the stale entry, or re-create the worktree with `worktree_create ` if the work is resuming." - **Repo mismatch:** "Either the worktree needs more repos (`git worktree add` inside the root) or `active.md` needs correcting. Investigate before the next `ship_library` run." ## Notes @@ -115,7 +115,7 @@ Only if warnings are present: On mobile/server there are no worktrees — this skill degrades gracefully: -1. Read `PyAutoPrompt/active.md` and display task entries with their `location:`, `status:`, and `repos:` fields +1. Read `PyAutoMind/active.md` and display task entries with their `location:`, `status:`, and `repos:` fields 2. For each task with a `worktree:` field, note that the worktree is on the laptop (not accessible from here) 3. Check branch state via GitHub API for each repo: ```bash