The work-queue command is its own package, @gemstack/skill-work-queue - #1779
Conversation
One package per command, named skill-<command>, the SKILL.md at the package root like the four capability skills; the routines package and its skills/<name>/ layout go. The daemon resolves the skill file through the package root. The skill text is unchanged. Routine skill is now command skill in the code comments; the daemon's rotation keeps the word routine. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rjdv16jjSyTUHZLXHpYjwG
The package's DECISIONS.md rewritten under Commands: two kinds of skill, a command assumes no capability, one package per command, the marker, the slash command. Its LOGIC.md and SKILL.LOGIC.md follow. Every framework LOGIC.md that named the routines package names the skill-work-queue package, and routine skill is command skill throughout. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rjdv16jjSyTUHZLXHpYjwG
|
👤 The prompts that drove this PR, verbatim. Under each, one 🤖 line on what the agent did with it. 1.
🤖 Read the memory files, then gathered the facts for step 1 without touching anything: local main one commit behind, daemon pid 87576 on the old build, three registered projects, which of them track skill files and list the packages (only gemstack lists the packages, none tracks the files), the packages are not on npm. Reported and waited. 2.
🤖 Pulled main to 06ea480, 3.
🤖 Explained question 2: the two throwaway projects have neither the files nor the bins, and the packages are not on npm, so wiring them means 4.
🤖 Pushed the branch, opened #1778, posted its 👤 comment without a separate ask. 5.
🤖 Switched auto PM on through the preferences RPC; the first look took its rotation turn and started Update from GitHub in all three registered projects; created the worktree off main and inventoried the routines package and every reference to it. 6.
🤖 Explained the two running update agents and their cost, and that the rotation visits every registered project. 7.
🤖 Sent the stop to both runs; both had already ended on their own. Read the log and the agent-data branch: each ticket write of the update agents was a move, eight empty /work-queue runs followed, $4.98 in all. Named the two projects. 8.
🤖 Kept only gemstack in the registry, restarted the daemon with SIGINT; the boot look fired Update from GitHub and one empty run again, $0.56. Then the edits: package moved and renamed, code and three tests repointed, lockfile, eight LOGIC files; build, typecheck, 1350 + 865 tests green. Proposed the DECISIONS.md text, the PR body and the Q6.5 edit. 9.
🤖 Applied the DECISIONS.md text, two commits, pushed, opened this PR. |
The
@gemstack/routinespackage becomes@gemstack/skill-work-queue: one package per command, namedskill-<command>, the SKILL.md at the package root like the four capability skills. Theskills/<name>/layout goes with it. The skill file's text is unchanged.The word for a routine skill is now command skill, in the code comments and every LOGIC.md that had the old one. The daemon's own jobs, the rotation, keep the word routine.
The framework still depends on the package and resolves the skill file through it, to link
work-queueinto every checkout. That dependency is temporary, see below.What remains
auto-pm.ts, knows the routines by name: the list, its order, which one works the queue, which one fans out, which two take a lock.Then, instead of triggers in the SKILL.md front matter and a scheduler package: a
skill-schedulecommand skill. The user configures it with a file in the project's main branch,agent-schedule.md, saying which command runs when: on a move of theagent-databranch, after a run that found nothing, once a week. The schedule skill orchestrates any command skill by its slash command; a command stays a command and declares nothing. Whatever fires the schedule, a daemon or a cron job, needs no knowledge of any command, so the framework's dependencies on command packages go, and the scheduler leavesauto-pm.ts.Temporary
@gemstack/skill-work-queueand links the skill into checkouts through the branches package's caller list. Both go withskill-schedule.labelandtooltipof the queued-work routine are written inauto-pm.ts. Once the launcher reads skill files, the skill's owndescriptionis the sentence.Tests
The three tests that resolve the skill file follow the package:
daemon-runtime.test.ts,daemon-workspace.test.ts,auto-pm.test.ts. No test added, no behaviour changed.pnpm build,pnpm typecheckandpnpm testpass.LOGIC.mdupdated beside every touched file and in the package.DECISIONS.mdof the package rewritten for one package per command and for a command assuming no capability.Cutover
None. gemstack does not list the package; the daemon resolves it from the framework's own dependencies. Restart the daemon after merging.
🤖 automated · Fable 5.1, effort high