Repository navigation
feat(kix): plan from an idea, pasted context, or a job's follow-ups - #205
Conversation
Quest-Claim: c2d896050cb72306
The inbox's new plan box takes the maintainer's idea and optional pasted context, which the agent reads through the context tool as untrusted text. Runners report suggested follow-ups with deliver, and the inbox offers each finished job's follow-ups as a "plan these?" decision on the plans/<job> target its interview takes. Recommended options come first, the runner and account fold behind an automatic default, and a plan's thread keeps what it started from and links its draft proposal. Finishes quest/m0/kix/planning.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 43243415c3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
A plans/<id> target takes a job's UUID, so the seeded job's follow-ups could not be planned from the local server. The seed test now plans them through the inbox form. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep both the agent activity cards (#215) and planning: the inbox loads activity jobs and the user's own runners for the new plan box, and both finished quests' links are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep both the plan context test and #210's busy review threads test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merge summary for 339e96e:
(Written by Claude Opus 5.5) |
…d fake #205's plan test asserted on the old inline fake's request log; read it from the mocked fetch like the rest of the suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve the overlap with planning (#205) and agent activity (#215), keeping every feature: - Renumber 0018_merge_jobs.sql to 0019, after 0018_plan_request.sql, and carry its new idea and context columns through the jobs rebuild. - createJob inserts both the plan request and continues a pull request's head for merge jobs as well as iterate. - The runner's context tool covers plan requests and merge jobs; deliver records both a landing and suggested follow-ups. - Agent cards name merge jobs "Merging". - Drop the finished activity, planning, and merge-job quests from the kix epic. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…b fake (#213) * chore(quest): claim quest/m0/kix/github-fake.md Quest-Claim: 64e456e2f74a458a * test(cloudflare): run publication end to end against the seeded GitHub fake The seeded fake (dev/github.ts) now models commits and trees in a fork network's shared object store, fast-forward and forced branch updates on the upstream and its service fork, pull request listing, creation, updates, and ready-for-review, and the issue and pull request reads a job's context makes. Like GitHub, it scopes each installation token to the repositories and permissions it was minted for, so a write with the wrong token fails. publish.test.ts drops its own stateful fake for this one, with a small world of its own and the shared `intercept` wrapper for lost responses and concurrent changes. The seed test adds a runner that publishes the seeded queued job's commits and pull request, and a retry that adopts the failed import job's pull request, whose fork branch the seed now records. The local server passes request headers to the fake, which needs them for token scoping. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(cloudflare): read the plan test's GitHub requests from the shared fake #205's plan test asserted on the old inline fake's request log; read it from the mocked fetch like the rest of the suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Finishes quest/m0/kix/planning.md: a maintainer starts a planning interview on kix.quest from an idea, pasted context, an issue, or a finished job's follow-ups, answers its rounds in the inbox, and gets a draft planning PR with the service-rendered decision record. Issue planning, account-limit decisions, the decision trail, and draft publication already existed; this adds the missing entry points and the interview UI details.
Changes
jobs.idea/jobs.context(migration0018_plan_request.sql). A retry keeps both, and so does Start over.plans/<id>job's agent reads its request through the existingcontexttool (GET /api/runner/contextnow answers{ kind: "plan", idea, context }from kix's own record, with no GitHub call). The runner prompt and tool description mark the pasted context as untrusted, not instructions.delivertool takesfollowups(at most 20 lines), which land in the completed job's result. The inbox offers each finished job's follow-ups as a decision on the targetplans/<job>, so the offer, its interview, and that interview's questions stay one item. Planning them takes the follow-ups and summary from the job's own result (never from the request) as context, and only once.pin=runner:accounton the form).quest rmremoved the quest and its links. execution.md no longer requires it, and its follow-ups bullet now describes what exists.Choices made without asking
plans/<id>target is accepted only as a retry of a failed interview or for a job's unplanned follow-ups.Checks
just checkandjust testpass locally. New tests cover the plan request validation and retry, follow-up planning from the job's result (a forged request is refused, and it plans only once), the plan context endpoint, the inbox box with a pinned account, the follow-ups item becoming its interview, recommended-first ordering, and the runner'sfollowupsvalidation and plan context tool.Suggested follow-ups
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)