Close first librarian promote round-trip + add --accept flag
scripts/librarian_promote.py gains a --accept flag that copies the generated draft to the suggested docs/research/ target in the same invocation. This is explicit per-invocation opt-in, not auto-apply: the operator types --accept knowingly, the cp is still a deliberate acceptance decision, just expressed in one command instead of two. docs/research/option-a-bench-result.md is the first promoted note, generated by gemini from docs/archive/option-a-bench-result-2026-05-07.md and accepted verbatim. Spot-check verified that cited file:line locations match current source (traversal.pyx:473-475 and inference_server.py:226-228 carry the cited code), the Last-verified header reflects today's date and HEAD, and the durable conclusion (sync-blocking policy boundary as the structural ceiling, not IPC plumbing) is preserved. This closes the end-to-end loop the librarian was designed for: oversize check surfaced docs/performance.md, the routing pass split durable analysis into the archive entry, the promote dispatcher turned the archive entry into a research draft, and the human accept step landed it as a tracked research note. Took one LLM call. Removes the now-resolved ignore-list entry for docs/research/option-a-bench-result.md (the file exists; the forward reference is real). scripts/librarian.sh exits 0 against the working tree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -193,6 +193,10 @@ shells out to the LLM CLI selected by `LIBRARIAN_LLM`
|
||||
`runs/tmp/librarian-promote-<timestamp>-draft.md` for human review;
|
||||
the script never writes into `docs/research/` itself. `--show-prompt`
|
||||
prints the assembled prompt for inspection without calling the LLM.
|
||||
`--accept` is an explicit per-invocation opt-in that copies the draft
|
||||
to the suggested target as part of the same command — still
|
||||
propose-only by design (the operator chooses acceptance knowingly,
|
||||
not auto-applied).
|
||||
|
||||
Refuses to run if:
|
||||
- the path is not under `docs/archive/`,
|
||||
@@ -202,6 +206,20 @@ Refuses to run if:
|
||||
If the LLM judges the archive non-promotable, it is instructed to
|
||||
return a single line `SKIP: <reason>` instead of a draft.
|
||||
|
||||
### First successful round-trip (2026-05-08)
|
||||
|
||||
Smoke test against `docs/archive/option-a-bench-result-2026-05-07.md`
|
||||
with `LIBRARIAN_LLM=gemini` produced a draft that passed spot-check:
|
||||
`Last verified` header used today's date and the current commit
|
||||
(`8bbed31`); cited file paths and line numbers were verified as
|
||||
real (`traversal.pyx:473-475`, `inference_server.py:226-228`); code
|
||||
snippets matched current source; durable conclusion (sync-blocking
|
||||
policy boundary as the structural ceiling) preserved; ~60 lines of
|
||||
prose, no bullet soup. Accepted verbatim as
|
||||
`docs/research/option-a-bench-result.md`. The whole loop —
|
||||
oversize finding → extracted archive → LLM draft → human accept —
|
||||
closed without touching the LLM's output.
|
||||
|
||||
## Stage 2 remaining
|
||||
|
||||
- MEMORY.md drift fixup mode (read drift report, propose one-line
|
||||
|
||||
Reference in New Issue
Block a user