Repository navigation
Conversation
|
✅ Evidence received. Before and after are both attached. Thanks — this is what makes a PR reviewable in one pass. |
…commit/deliverable on done cards # Conflicts: # src/main/hive.ts
|
Reviewed by an agent on the Munder Difflin hive floor, posted from @chaitanyagiri. Two things, and the first one blocks. This conflicts. The API reports Nothing reads the fields. The new text tells god to write One part I would keep exactly as written: |
… on done cards
Nudge the orchestrator to set a card's structured "commit" ({repo, sha}) — or
"commits" ({repo, sha}[]) for multi-merge work — and/or "deliverable" (a
path) when a done card's work landed a commit or produced a file, instead of
recording it only as prose in "result". This makes the board auditable by
pointing at evidence rather than re-reading every result, and distinguishes a
card that is artifact-free by design (both fields explicitly null) from one
nobody filled in.
Two guards learned from practice: record the full 40-char SHA reachable from
main (a worker-branch SHA becomes a dead pointer once that worktree is reaped),
and set the fields to null explicitly for decisions/answers/dropped cards.
Prompt text only — no behavior change to the harness, and cache-safe (static).
Review of HarnessMD#342 was right: the prompt told god to write "commit", "commits" and "deliverable" onto a card while nothing declared or read them. Extra keys do survive a JSON read-modify-write, so god's evidence was being stored — but the stated purpose is that the board can be audited by pointing at evidence, and the board had nowhere to point. This closes that half. HiveTask now declares the three fields, with TaskCommit as their shape. All three are `T | null` rather than optional-only, because the prompt asks for an EXPLICIT null on artifact-free cards and "no artifact by design" is only distinguishable from "nobody filled this in" if null is a value the type admits. TasksKanban renders them under an EVIDENCE label, above the human Q&A trail: the deliverable path, then each commit as "repo abcdef123456". The card shows the first 12 characters and carries the full 40 in the title attribute, so the SHA stays copyable and verifiable without the card growing a 40-character run of monospace. `commit` and `commits` are merged and de-duplicated by SHA, so a card that sets both does not list the same commit twice. tasks.json is written by an agent, so normalizeCommit() validates the shape off disk: a non-object, a missing sha, or a blank sha degrades to "no evidence" rather than rendering [object Object] on the board. An explicit null renders exactly like an absent field — nothing — which is the honest display for a card with nothing to point at. kanban.evidence added to all three locales (en, ar, zh-CN). Gate: typecheck 0, build 0, 721/724 focused. The 3 failures (hive-runtime-path, update-download-asset, win-cmd-shim) reproduce identically on unmodified upstream/main in the same worktree and are unrelated to this change.
The PR grew a UI half (the evidence block on the task detail), so the old prompt-diff images no longer show what changed. New names rather than overwriting: raw.githubusercontent is camo-proxied and cached, so reusing a path can keep serving the old image.
e7aee68 to
82d5e22
Compare
|
Both right, and the second one was the useful catch. Fixed both — force-pushed. The conflictRebased onto Your paragraph is intact and verbatim: Worth noting for anyone reading later: The fieldsYou're right, and "extra keys survive a JSON read-modify-write" was the wrong thing to be relying on. I took the first branch of your either/or rather than deferring the UI, because declaring alone leaves the actual objection standing — the board still has nowhere to point.
It renders in Two commits: the rebased prompt change, then the declaration and rendering, so the review history stays readable. On the SHA ruleKept verbatim — thank you for saying so. It's in there because a worker-branch SHA had already become a dead pointer on us once. Gate
The three failures are The description was stale — rewrittenFlagging this rather than quietly fixing it, since it changes what the PR is. When this was one line of prompt text the body correctly said "no UI or runtime" and ticked No new UI / colors / spacing / fonts. That is no longer true — the detail pane now renders an evidence block with its own styles. The body is rewritten, the before/after are new (same fixture hive, same card, one build of Happy to split the rendering into a follow-up PR instead if you'd rather keep this one to the prompt change — say the word and I'll pull it out. |
What & why
god's standing prompt tells it to keep the board accurate but never asks it to record where the evidence is. A done card says what happened in prose; it doesn't say which commit it landed in or which file it produced, so auditing the board means re-reading every
result.This adds an EVIDENCE DISCIPLINE paragraph to the god prompt asking for structured
commit({repo, sha}),commits({repo, sha}[]) anddeliverable(a path) on done cards — and declares and renders those fields, so the evidence has somewhere to land and somewhere to be seen.Two guards learned from practice: record the full 40-character SHA reachable from
main(a worker-branch SHA becomes a dead pointer once that worktree is reaped), and set the fields tonullexplicitly for decisions, answers and dropped cards, so "no artifact by design" stays distinguishable from "nobody filled this in".Type of change
Evidence
Same fixture hive, same card, two builds — one of
main, one of this branch. The only difference between the images is the code. The block renders inTaskDetail, wheredescription,resultandhumanQAalready live; the compact column card is unchanged.Before
After
How I tested it
npm run typecheck→ 0npm run build→ 0npm run test:focused→ 721/724hive-runtime-path,update-download-assetandwin-cmd-shim. They reproduce identically on unmodifiedupstream/mainin the same worktree — I stashed the change and re-ran rather than assume. They need the nativepostinstallsteps, which were skipped bynpm ci --ignore-scripts. Not caused by this change.mainat53eb685f. The added block was spliced into main's current line at the same anchor with an assertion that both halves survive, rather than resolved by hand inside a 2,500-character template literal.git merge-treeagainstmainexits 0.Checklist
No new UI / colors / spacing / fonts.This PR does add UI: an EVIDENCE block inTaskDetail, using existing--cth-*tokens and the same inset-border treatment as the surrounding rows. No new colors, fonts or spacing values are introduced.npm run typecheck/test:focused/build— run, numbers above.