Add a pattern opportunity detector over the catalog #1430
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#1430
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 pattern catalog under
plugins/os-sdlc/lib/os_sdlc/system_model/catalog/holds six patterns (hex, layers, pipes_and_filters, command_router, repository, transaction_script) with role predicates, but no detector walks the model and names a near-match. Step 5 of the path to real asks for a pattern opportunity detector over a catalog of a pattern list held as data, with the proof that it names at least one near-match in os-me a human agrees should be a pattern.Reproduce
Output: the usage line, exit 2. No subcommand ranks cards against the catalog.
Approach
Add an
opportunitiessubcommand. For every pattern inCatalog, bind each role predicate to the cards whoseClassFactssatisfy it, score the binding by the share of roles filled and the share of catalog rules the bound cards obey, and print the top bindings as<pattern> <score> <role>=<card> ...with the unmet rules. Grow the catalog toward thirty patterns in later tickets, one pattern per ticket, each with its own role predicates and rules; this ticket adds the detector over the six that exist.Required work:
Opportunityobject that binds one pattern's roles to cards and scores the binding — check: presentOpportunityinplugins/os-sdlc/lib/os_sdlc/system_model/pattern/*.rbOpportunityReportthat prints bindings sorted by score — check: presentOpportunityReportinplugins/os-sdlc/lib/os_sdlc/system_model/*.rbopportunitiesin the system-model argv parser and usage text — check: presentopportunitiesinplugins/os-sdlc/lib/os_sdlc/boot/inputs.rbopportunitiesthroughRunwith the Tracer step — check: presentopportunitiesinplugins/os-sdlc/lib/os_sdlc/system_model/run.rbRealigned spec
Spec realigned 2026-11-01 (README section 6 step 10, ruled by Jared 2026-11-01):
Acceptance criteria
plugins/os-meas the target, whensystem-model opportunities plugins/os-meruns, then it exits zero and prints at least one binding with a score, roles and cards.Owner sketch
Non-goals
The thirty-pattern catalog. The human agreement proof runs after this ticket and is recorded in
docs/system-design-format/proof/.Origin
VERDICT: CREATE
Waiting on #1482 (step 9 fact spike) and #1483 (forbidden-edge rule evaluator, which supplies the misfits for each Match). Spec realigned to README section 6 step 10: pattern list and thresholds are data, no pattern ID in detector code, convergence per scale group, coverage figure per plugin. Body edited 2026-11-01.
os-backlog cannot add labels yet (#867, the label verb ticket). This ticket stays blocked by #1482 and #1483 per its earlier comments.
Work started 2026-11-01 in worktree branch worktree-agent-ac63aa91edc5b552e (realigned spec: per-component scoring, per-group thresholds, per-finding convergence).
Resolution
Done: Pattern opportunity detector shipped with noise fixes
Evidence:
d7107d26+eda2266e, merge85599697, noise fixesbc6c435af391cf83merged6759ca0c; suite 3061 runs greenFollow-ups: #1494 #1495 #1496 #1497; store/adapter faulted for its own I/O and pattern-vs-signal convergence: pending Jared's ruling in session, no ticket yet