decision-system S2b: pairs, detectors, grouper, reply shape #1243
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1243
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The spike found three defects in draft extraction: percents that are not a confidence, quoted pastes, and one memo counted several times. Regex could not read replies (308 of 359 unclear). The pipeline needs tested objects that fix these, with
ReplyShapebacked by the model.Approach
Required work:
ExchangeFinder#pairsthat returnsPairobjects with AI text and timestamps — check: presentclass Pairinplugins/os-me/lib/**/*.rbMemoDetector— check: presentclass MemoDetectorinplugins/os-me/lib/**/*.rbConfidenceExtractor, anchored to "confidence/confident" and the recommendation line — check: presentclass ConfidenceExtractorinplugins/os-me/lib/**/*.rbRecommendationGrouperthat counts one memo once and drops quoted pastes — check: presentclass RecommendationGrouperinplugins/os-me/lib/**/*.rbReplyShape(model-backed through theDecisionModelport) andLatency— check: presentclass ReplyShapeinplugins/os-me/lib/**/*.rbNotes: Reuse
TranscriptCatalog,TranscriptReader,Entry#typed_reply,Entry#main_thread?, andSplit. Draft only objects of this stage. Follow the AFK rules indocs/decision-system/build-plan.md: never wait for Jared, use the AFK default of each open item, and list each default used in the report.Acceptance criteria
ConfidenceExtractorruns, then it returns the confidence of the recommendation line.RecommendationGrouperruns, then it drops the quoted text.RecommendationGrouperruns, then it counts the memo once.DecisionModeladapter, whenReplyShaperuns, then it returns the shape the adapter gave.Owner sketch
Scope and blocking
Blocked by: #1242
Object shapes are in
docs/decision-system/extraction.md. Fixtures must not contain real transcript text. The spikepoints.jsonholds transcript text: never commit it.Non-goals: the moment record, log, cursor, and CLI (S2c).
Origin
DESIGN(docs/decision-system/build-plan.md).VERDICT: CREATE (user-approved; backlog search only)
Work started on branch ticket-1243 (worktree, stacked on ticket-1242 because main checkout is dirty), AFK decision-system build, session 4f3f95ea.
Resolution
Done: Draft extraction objects: Pair, Entry, ExchangeFinder, Latency, MemoDetector, ConfidenceExtractor (+Stated), RecommendationGrouper, ReplyShape; implementation 117, all gates green after one extra red round and one refactor.
Evidence: Commit
84a99640on branch ticket-1243 (stacked on ticket-1242): 10 files, plugins/os-me/test/draft_extraction_test.rb; suite + required-work + contract audit pass.Follow-ups: none (LENS P5 line was JUSTIFIED: no and fixed in-run by moving Stated to confidence_extractor/stated.rb)