Skip to content

docs(quest): plan per-project forks and the decision paper trail - #150

Merged
kixelated merged 3 commits into
mainfrom
quest/plan-publication-followups
Oct 19, 2026
Merged

kixelated merged 3 commits into
mainfrom
quest/plan-publication-followups

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Summary

This plans two follow-ups from the bot publication PR (#145):

  • [S] quest/m0/kix/forks.md: record each project's service fork by its GitHub repository ID instead of GITHUB_FORK_OWNER/<upstream name>, so two upstreams with the same name (alice/app, bob/app) can't collide. The operator keeps creating forks by hand, now under any name, and kix records a fork once it confirms the fork's parent is that project's upstream. It ranks after operator setup and lands in m0 before launch.
  • [S] quest/m0/kix/paper-trail.md: the service writes a planning PR's decision section from the job's recorded questions and answers, with ✅ on each choice, so the agent no longer writes its own. It ranks after the answer flow quest.

paper-trail.md requires quest/m0/kix/prompts.md, which #144 deletes. Whichever of the two PRs merges second must drop that Required entry.

The other three suggestions from #145 were left unplanned: a live test of contributor-fork pushes, a published job event, and continuing an iteration after its PR head moved.

Planning decisions

Who creates each project's fork, given that kix then records it by GitHub ID so names can't collide?

  • ✅ The operator, as today (Recommended): forks are still made by hand under any name, and the App needs no new permissions.
  • kix creates it at enrollment with a unique name, which needs untested repository-creation rights.

When does the per-project fork land?

  • ✅ m0, before launch (Recommended), right after operator setup
  • m1

Interview answers in planning PRs: how should the service record them?

  • ✅ The service renders them (Recommended), replacing the agent's paper trail
  • Add them below the agent's paper trail

Checks

quest check, just check and just test pass.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T17:41:27.193476Z 44a8b19 New commits
🔒 Security Review ✅ Completed 2026-10-19T17:47:11.060085Z 44a8b19 New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 01e42b6367

ℹ️ 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".

Comment thread quest/m0/kix/paper-trail.md Resolved
Comment thread quest/m0/kix/paper-trail.md Resolved
…pts in the paper trail

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 44a8b19d6d

ℹ️ 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".

Comment thread quest/m0/kix/paper-trail.md Resolved
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Merging via /quest-merge.

(Written by Claude Opus 5.5)

@kixelated
kixelated merged commit ee5d066 into main Oct 19, 2026
5 checks passed
kixelated added a commit that referenced this pull request Oct 19, 2026
#150 added paper-trail.md requiring /quest/m0/kix/prompts.md, which
this PR deletes. That was its only blocker, so the Required section
goes away.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Oct 19, 2026
* chore(quest): claim quest/m0/kix/prompts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(worker): make the decision inbox the signed-in home

Add /inbox: one active decision thread across a maintainer's enrolled projects, coalesced per job target, with agent questions, account-limit choices, failed jobs, new pull requests, new issues, and ready quests. Define the agent prompt contract (choices, recommendation, free text, permission vs decision) and validate prompts and answers. Job routes accept inbox form posts, bind decisions to the revision on screen, and refuse stale or repeated answers. Per-maintainer read state marks changed items unread and keeps skips until an item changes. Sign-in now lands on the inbox.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(worker): keep the decision thread in one column on wide screens

The PR meta line reused .entry-meta, whose grid-column: 2 split the thread
into two columns once there was room. Also show GitHub's check and review
enums as plain words.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(quest): drop the deleted inbox quest from paper-trail

#150 added paper-trail.md requiring /quest/m0/kix/prompts.md, which
this PR deletes. That was its only blocker, so the Required section
goes away.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(worker): answer publication decisions and keep older jobs in the inbox

Codex review findings on #144:

- A publication decision from bot publication (#145) fell through to
  "could not be read" with no way to answer. The inbox now lists the
  refused paths or why the branch is blocked and takes a text reply,
  which the answer route accepts from the form.
- A failed PR job whose pull request is no longer observed crashed the
  inbox: the retry action dereferenced missing activity before the
  refresh reason was checked. The action is built only when unblocked.
- The inbox read only the 50 newest jobs, so an older waiting job
  vanished. It now also reads every queued, running, and waiting job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(worker): retry failures only where the retry can work

Codex review findings on #144, round 2:

- Retrying a failed planning interview started an unrelated one under a
  new plans/<id>. The retry now keeps the target, which the jobs route
  accepts, so the new job replaces the failure.
- A failed quest job offered "Try again" after the quest stopped being
  ready, which the route then refused. The inbox explains instead.
- An older failure beyond the 50-job history showed as fresh work or
  vanished. The inbox also reads each target's latest failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(worker): read each target's latest job and encode quest links

Codex review findings on #144, round 3:

- A finished job beyond the 50-job window let its still-open issue, PR,
  or quest show as fresh work. The inbox now reads each target's latest
  job however old: every one awaiting a decision, plus any other whose
  target is still observed. An index on (repository, target, createdAt)
  backs the lookup, replacing the 50-job window.
- Quest links interpolated raw paths, so a `#` or `?` in a filename
  broke the board link. They now reuse the board's path encoding.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(worker): limit publication replies by characters, not JSON length

The inbox's reply box allows 1,000 characters, but the answer route
checked the JSON-serialized length against 1024, so quotes, backslashes,
and line breaks could get a valid reply refused as too large. The route
now checks the text itself against the same 1,000-character limit the
form uses, after normalizing the CRLF line breaks forms submit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(quest): plan batched inbox reads for m1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(quest): plan retries that continue from the published branch

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated deleted the quest/plan-publication-followups branch October 21, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant