@bompus/house-rules 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CODE_OF_CONDUCT.md +83 -0
  2. package/README.md +91 -60
  3. package/compose.mjs +8 -2
  4. package/composition.mjs +11 -3
  5. package/config-view.mjs +18 -3
  6. package/config.mjs +74 -13
  7. package/docs/assets/overview.png +0 -0
  8. package/docs/configuration.md +85 -9
  9. package/package.json +4 -2
  10. package/rules/core.md +118 -209
  11. package/rules/modifiers/backlog-outline.md +25 -0
  12. package/rules/modifiers/backlog-visual.md +16 -0
  13. package/rules/modifiers/coded-offers.md +47 -17
  14. package/rules/modifiers/cross-session-relay.md +23 -0
  15. package/rules/modifiers/low-quota-handoff.md +4 -3
  16. package/rules/modifiers/model-default-questions.md +33 -0
  17. package/rules/modifiers/multi-agent.md +6 -2
  18. package/rules/modifiers/no-attribution.md +7 -1
  19. package/rules/modifiers/periodic-updates.md +25 -0
  20. package/rules/modifiers/plan-files.md +35 -3
  21. package/rules/modifiers/release-batching.md +4 -2
  22. package/rules/modifiers/shared-host-load.md +13 -42
  23. package/rules/modifiers/squash-landing.md +1 -1
  24. package/rules/modifiers/upstream-contributions.md +45 -0
  25. package/rules/modifiers/web-image-formats.md +35 -0
  26. package/rules/references/backlog-view.md +154 -0
  27. package/rules/references/landing.md +14 -14
  28. package/rules/references/multi-agent.md +6 -2
  29. package/rules/references/release-batching.md +27 -4
  30. package/rules/references/squash-landing.md +10 -4
  31. package/rules/references/thread-visuals.md +45 -0
  32. package/setup.mjs +87 -17
  33. package/skills/hr-agent-guidance-audit/SKILL.md +10 -5
  34. package/skills/hr-agent-guidance-audit/references/prune-workflow.md +72 -0
  35. package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +1 -1
  36. package/skills/hr-agent-guidance-audit/references/retirement-verdicts.md +49 -0
  37. package/skills/hr-agent-guidance-refresh/SKILL.md +25 -57
  38. package/skills/hr-agent-guidance-refresh/references/verification.md +1 -1
  39. package/skills/hr-audit-choices/SKILL.md +1 -1
  40. package/skills/hr-benchmarking/SKILL.md +122 -159
  41. package/skills/hr-benchmarking/references/javascript.md +113 -0
  42. package/skills/hr-benchmarking/references/tools.md +62 -57
  43. package/skills/hr-better-accessibility/SKILL.md +1 -1
  44. package/skills/hr-better-accessibility/screen-readers.md +1 -0
  45. package/skills/hr-code-review/SKILL.md +19 -3
  46. package/skills/hr-code-review/agents/openai.yaml +1 -1
  47. package/skills/hr-code-review/references/acp-client.md +43 -0
  48. package/skills/{hr-change-impact/SKILL.md → hr-code-review/references/impact.md} +2 -12
  49. package/skills/hr-code-review/references/panel-adjudication.md +58 -0
  50. package/skills/hr-code-review/references/panel-plan.md +61 -0
  51. package/skills/hr-code-review/references/panel-recommendations.json +105 -0
  52. package/skills/hr-code-review/references/panel-recommendations.md +46 -0
  53. package/skills/hr-code-review/references/panel-setup.md +54 -0
  54. package/skills/hr-code-review/references/reviewer-role.md +31 -0
  55. package/skills/hr-code-review/scripts/acp-panel-client.mjs +299 -0
  56. package/skills/hr-code-review/scripts/check-receipts.mjs +263 -0
  57. package/skills/hr-code-review/scripts/panel-plan.mjs +69 -0
  58. package/skills/hr-code-review/scripts/panel-preferences.mjs +220 -0
  59. package/skills/hr-design-exploration/SKILL.md +24 -1
  60. package/skills/hr-design-exploration/agents/openai.yaml +2 -2
  61. package/skills/hr-diagnosing-bugs/SKILL.md +2 -2
  62. package/skills/hr-diagnosing-bugs/references/reporting.md +29 -4
  63. package/skills/hr-diagnosing-bugs/scripts/check-pr-offer.mjs +47 -0
  64. package/skills/hr-explain-code/SKILL.md +1 -1
  65. package/skills/hr-extract-shared-steps/SKILL.md +1 -1
  66. package/skills/hr-forgotten-work-audit/SKILL.md +130 -0
  67. package/skills/hr-forgotten-work-audit/references/brief-template.md +56 -0
  68. package/skills/hr-forgotten-work-audit/references/result-format.md +46 -0
  69. package/skills/hr-handoff/LICENSE +21 -0
  70. package/skills/hr-handoff/NOTICE.md +29 -0
  71. package/skills/hr-handoff/SKILL.md +24 -1
  72. package/skills/hr-handoff/references/reconciliation.md +25 -6
  73. package/skills/hr-handoff/references/successor-thread.md +76 -0
  74. package/skills/hr-handoff/scripts/check-reconciliation.mjs +48 -6
  75. package/skills/hr-house-rules-setup/SKILL.md +22 -8
  76. package/skills/hr-lean-plan/SKILL.md +4 -0
  77. package/skills/hr-maintainability-review/SKILL.md +14 -4
  78. package/skills/hr-maintainability-review/agents/openai.yaml +1 -1
  79. package/skills/hr-manual-qa/SKILL.md +1 -1
  80. package/skills/hr-ordering-tests/SKILL.md +1 -1
  81. package/skills/hr-plain-prose/SKILL.md +7 -4
  82. package/skills/hr-pr-followup/SKILL.md +6 -3
  83. package/skills/hr-pr-followup/references/review-helpers.md +21 -0
  84. package/skills/hr-pr-followup/scripts/check-landing.py +204 -0
  85. package/skills/hr-pr-followup/scripts/merge-pr.sh +100 -0
  86. package/skills/hr-pr-followup/scripts/verify-landed.sh +184 -0
  87. package/skills/hr-read-reddit/SKILL.md +1 -1
  88. package/skills/hr-research-shared-links/SKILL.md +103 -0
  89. package/skills/hr-sqlite/SKILL.md +174 -0
  90. package/skills/hr-sqlite/agents/openai.yaml +2 -0
  91. package/skills/hr-sqlite/references/evidence.md +94 -0
  92. package/skills/hr-sqlite/references/tool-decisions.md +39 -0
  93. package/skills/hr-sqlite/scripts/inspect-sqlite.py +245 -0
  94. package/skills/hr-stock-ui-audit/SKILL.md +1 -1
  95. package/skills/hr-test-audit/LICENSE +21 -0
  96. package/skills/hr-test-audit/NOTICE.md +67 -0
  97. package/skills/hr-usage-report/SKILL.md +90 -0
  98. package/skills/hr-usage-report/agents/openai.yaml +2 -0
  99. package/skills/hr-usage-report/assets/example-report.json +125 -0
  100. package/skills/hr-usage-report/assets/report-template.html +377 -0
  101. package/skills/hr-usage-report/scripts/render-report.ts +86 -0
  102. package/skills/hr-usage-report/scripts/usage-by-model.ts +499 -0
  103. package/skills/hr-what-next/SKILL.md +100 -10
  104. package/skills/hr-what-next/references/reporting.md +13 -22
  105. package/skills/hr-what-next/scripts/check-open-work.mjs +711 -0
  106. package/skills/hr-writing-pr/SKILL.md +29 -14
  107. package/skills/hr-writing-pr/scripts/benefit-chart.py +200 -0
  108. package/docs/npm-release.md +0 -45
  109. package/rules/modifiers/swarmail.md +0 -12
  110. package/skills/hr-benchmarking/references/priority-findings-20261006.md +0 -115
  111. package/skills/hr-change-impact/agents/openai.yaml +0 -5
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: hr-what-next
3
- description: "Reconcile remaining work and recommend priorities. Use for next, next?, what's next, what remains, backlog reviews, full-session audits of tasks and unanswered or past questions, and equivalent requests. Do not use for go or continue, which retain their acceptance/continuation meaning, or progress/ETA-only requests."
3
+ description: "Reconcile remaining work and recommend priorities. Use for next, next?, what's next, what remains, backlog reviews, walk-throughs of the backlog item by item, full-session audits of tasks and unanswered or past questions, and equivalent requests. Do not use for go or continue, which retain their acceptance/continuation meaning, or progress/ETA-only requests."
4
4
  ---
5
5
 
6
6
  # What next
@@ -17,25 +17,55 @@ completed state before the completion message; a report alone does not do so.
17
17
  1. Choose the review scope from the request and its context. For a short
18
18
  "next?", check the current task, its ledger and latest results, plus this
19
19
  floor whatever the scope: every question from an earlier offer in this
20
- conversation that the user has not answered, every owned uncommitted file,
21
- unpushed commit or held checkout, and the number of other live ledger items
22
- (deferred, unselected, blocked or follow-up) with a link to the ledger.
20
+ conversation that the user has not answered, every item deferred with only the
21
+ user's selection as its trigger, every owned uncommitted file, unpushed commit
22
+ or held checkout, and the number of other live ledger items (deferred,
23
+ awaiting selection, blocked or follow-up) with a link to the ledger.
24
+ When the session keeps a plan file, `scripts/check-open-work.mjs <plan>`
25
+ computes this floor (add `--checkout <path>` for each checkout touched, or
26
+ `--app-managed <path>` for one an app retires, which is reported but not a
27
+ finding): run it and quote its result instead of recalling the ledger. Its
28
+ "awaiting your yes/no" group lists the user-trigger deferrals by a text match.
29
+ Its "possibly finished" group lists items whose named pull requests or
30
+ issues are all merged or closed (add `--repo <owner/repo>` for bare numbers),
31
+ unless a named commit sits outside a `--checkout`'s default branch,
32
+ and "re-check due" lists `recheck:` dates that are past or within a week.
33
+ Look at each before reporting it as done or still waiting.
34
+ It also prints `unanswered offers: N`, the number of offer IDs ("Offer
35
+ ABC-12") on open ledger lines that no line records as answered, dropped or
36
+ superseded, and warns at three. Plans that number offers without an ID are
37
+ not counted.
38
+ When the plan's header has a `Project: <name>` line, it also warns when that
39
+ project's last `hr-forgotten-work-audit` record is missing or over 30 days
40
+ old; offer the audit then.
23
41
  Report each floor item, or state that the floor is empty. While any floor
24
42
  item remains, do not say that nothing is left or that nothing needs the
25
- user; re-present the unanswered questions as an offer instead. When asked
43
+ user; re-present the unanswered questions and ask the undecided items (step 6). When three
44
+ or more offers from this conversation are open and unanswered, do not
45
+ re-present them one by one: start a walk-through over them. When asked
26
46
  for all current and past items, review the available session transcript,
27
47
  relevant plans, task lists, handoffs and linked follow-ups. Name source
28
48
  ranges and missing, inaccessible or truncated records. Sweep other
29
49
  sessions' records only within the requested project and scope.
30
50
  2. Trace requests, unanswered questions, commitments, offered alternatives
31
- and findings to their latest disposition. Reconcile duplicate, superseded
51
+ and findings to what was last decided or done about them. Reconcile duplicate, superseded
32
52
  and stale rows with completion or replacement evidence. Keep owners,
33
53
  deferred triggers and other sessions' context visible. An old task
34
54
  description alone does not establish current activity or ownership.
35
55
  3. Preserve the latest selected scope and valid unanswered offer in the
36
- durable ledger. Distinguish done, authorized unfinished, unselected,
56
+ durable ledger. Distinguish done, authorized unfinished, awaiting selection, dropped,
37
57
  blocked, deferred and other-owner items. A completed implementation does
38
- not complete required checks or landing; deferral does not mean done.
58
+ not complete required checks or landing; deferral does not mean done. A
59
+ deferral is not a yes or no: an item deferred with only the user's selection
60
+ as its trigger is undecided, so it sorts under needs your decision.
61
+ Sort every open item by what it waits on: **actionable now** (this session
62
+ can advance it under existing authority), **needs your decision** (a
63
+ selection or answer only the user can give) or **waiting on others** (an
64
+ external release, issue or pull request, another project or owner, a date,
65
+ or an app that retires it). Keep each waiting item's trigger and owner. A
66
+ waiting item stays in the ledger and in the report with its trigger, but it
67
+ is not work this session can do yet: do not recommend it as a next step
68
+ before its trigger fires.
39
69
  4. Rank remaining items toward the current goal and explicit priorities.
40
70
  Explain the objective and weigh expected impact, next-decision value,
41
71
  urgency, dependencies, effort and evidence confidence. Keep priority,
@@ -47,15 +77,75 @@ completed state before the completion message; a report alone does not do so.
47
77
  For a full audit, put the full individual table in a durable report
48
78
  and link it beside the immediate decisions. Answer whether items are
49
79
  accounted for separately from whether selected work is complete.
80
+ Where the user's rules have a backlog view (§ Backlog view, an optional
81
+ rule), show it beside the table whenever any item remains, in the format that
82
+ rule gives. Without one, the table alone is the report. The offer itself
83
+ follows the offer rules, which make an offer visual only when the user asks
84
+ for one.
50
85
  6. Continue work that can advance under existing authorization. Ask only for
51
- unresolved choices using the governing offer format. Preserve schedules
86
+ unresolved choices using the governing offer format. Invoking this skill is
87
+ asking for the backlog (§ Session purpose), so present every needs-your-decision
88
+ item as an offer, or as a walk-through when three or more questions are open,
89
+ instead of only counting it. Record each answer as yes, no
90
+ (dropped) or defer with a trigger other than the user's selection, so the
91
+ item is not asked again on every run. A no is dropped, even when it names
92
+ what would make the user reconsider. Defer only work the user wants done later. Items waiting on others stay listed
93
+ with their trigger and are not asked. Preserve schedules
52
94
  and ownership; this audit grants no authority to start, transfer, publish
53
95
  or clean up work merely because it appears in the inventory.
54
96
 
97
+ ## Walk-through
98
+
99
+ When the user asks to go through the backlog item by item, or three or more
100
+ offers are open and unanswered, run it in groups:
101
+
102
+ 1. Rank and save the report as above. Where the user's rules have a backlog
103
+ view (§ Backlog view), show it for the whole ranked backlog with the
104
+ current group marked and placed last among the decisions. The decisions
105
+ stay in the text offer. When
106
+ stacked offers start the walk-through, mark each superseded in the ledger,
107
+ keep its option text, and queue its questions as groups.
108
+ 2. Put items in one group when one answer can cover them: the same owner, the
109
+ same action or one dependency. Ask one group per reply, one numbered
110
+ question per item with one combined acceptance line. Ask first the group
111
+ whose answers change or unblock the others, then one with a date, then the
112
+ rest; a decision whose prerequisite is still open waits for a later group.
113
+ Say how many groups remain and name the next.
114
+ 3. Before asking a group, look up what one read-only call can answer (why a
115
+ run failed, whether a setting already exists) and show the finding beside
116
+ the question. Ask the user only the decision.
117
+ 4. Record each answer in the ledger before acting, then close that group's
118
+ offer. Show the backlog view again, when there is one, with the next group
119
+ marked before asking it.
120
+ `go` selects the recommendation in the latest open group only. A result or
121
+ handoff that brings its own offer while the queue is open joins the queue
122
+ with one line; it does not become another standalone offer.
123
+ 5. Stop when no decision remains that the user can make now. Record each
124
+ leftover with the condition that would reopen it. Say what closed in the
125
+ text, and show the backlog view, when there is one, with what still waits;
126
+ the view lists open items only.
127
+
55
128
  For a full audit, save a mapping from reviewed source records to items or
56
- reviewed context-only dispositions. If `hr-handoff` and its reconciliation
129
+ reviewed records kept only as context. When the report rebuilds a ledger or
130
+ inventory from an earlier one, treat the earlier one as a source. Carry each of
131
+ its open or deferred lines over as an item, marked done with its outcome when it
132
+ has closed. Several lines may share one item only when the same next action
133
+ and completion evidence satisfy every line. A summary row such as "the rest,
134
+ reopen only if asked" loses those lines. If `hr-handoff` and its reconciliation
57
135
  resources are available, reuse its `references/reconciliation.md` procedure
58
136
  and `scripts/check-reconciliation.mjs` checker. Otherwise retain the mapping
59
137
  and coverage gaps without claiming a mechanical check. A passing checker
60
138
  accounts for supplied records; it does not prove every promise was understood
61
139
  or that unavailable history contains no other work.
140
+
141
+ ## Machine reconciliation
142
+
143
+ For a host that checks the reply boundary, add `--json --session <id> --turn <id>`
144
+ to the existing floor command. It emits a bound `reconciliation` receipt alongside
145
+ the usual report. An invalid plan exits `1`, even when displayed groups are empty.
146
+ Exit `2` reports open work or findings and does not classify readiness or authority.
147
+
148
+ The house-rules repository's `evals/end-of-reply/README.md`, Adapter migration,
149
+ defines version-2 records, exact item coverage and adapter migration. The floor
150
+ only supplies snapshot identities; the producer must explicitly classify each
151
+ item. Source availability does not establish host enforcement.
@@ -6,26 +6,20 @@ for actions the user must perform.
6
6
 
7
7
  During long work, give frequent useful progress updates with completed evidence,
8
8
  the current action and what remains. Show clock-time forecasts in the user's
9
- local timezone. Use the timezone provided by the user or session environment;
10
- ask if neither establishes it.
9
+ local timezone. Use the timezone provided by the user or session environment,
10
+ including the host clock zone (`date +%Z`, or `Get-TimeZone` on Windows). Check
11
+ it before reporting UTC or saying the zone is unknown; ask if neither
12
+ establishes it.
11
13
 
12
- Use a visual when it makes a change, behavior or decision clearer; keep a short
13
- text explanation beside it. For visible interface changes, prefer actual
14
- before/after captures with comparable content, viewport and state when available.
15
- Label mockups and simulated behavior as illustrations, not verification. Use
16
- interaction when exploring states or alternatives helps the reader, and provide
17
- an accessible text or static equivalent. Use the host's available tools within
18
- existing browser and task authorization.
14
+ For routine replies, aim for at most five items per list or group. Rank the
15
+ items by relevance to the current task and retain undisplayed candidates in
16
+ the ledger. When the user requests a full inventory, or needs more items to
17
+ make a decision, show every relevant item. This presentation target does not
18
+ limit investigation, required disclosures or the options required by § Offers.
19
19
 
20
- Use a Markdown table when comparing items on common criteria or reporting
21
- repeated records with useful shared fields. When asked about benefits,
22
- tradeoffs or how a proposal differs from current behavior, use a compact
23
- table for multiple items. Explain one item per row. For changes, show current
24
- and proposed behavior and why the difference matters. Include relevant
25
- tradeoffs and evidence or uncertainty; label unknowns rather than inventing
26
- gains. Keep columns consistent and cells short. Label missing or unverified values and put units in headings. Put
27
- explanations and caveats beside the table. Split wide tables or use lists when
28
- long cells obscure the comparison. Preserve § Offers and any enabled offer format.
20
+ Use a visual when it makes a change or decision clearer, with a short text explanation beside it. For interface changes prefer real before/after captures with comparable content, viewport and state; label mockups as illustrations. Give an interactive visual a text or static equivalent.
21
+
22
+ Use a Markdown table to compare items on shared criteria: one item per row, short cells, units in headings. For proposed changes, show current behavior, proposed behavior and why it matters. Label unknown or unverified values instead of inventing gains, and put caveats beside the table. Numeric before/after tables get a benefit column (percent or times; absolute when a ratio cannot be computed); label changes inside the noise band "no clear change". Keep any enabled offer format.
29
23
 
30
24
  When asked for a backlog, research list or remaining work, check the current
31
25
  session and relevant task records within the requested scope. Reconcile
@@ -50,10 +44,7 @@ Label expected gains and unknowns; do not invent measurements or scores.
50
44
  Keep priority separate from readiness, and preserve § Finishing work's
51
45
  requirements for continuing authorized work and making offers.
52
46
 
53
- Put the answer, and anything the user must read or act on, in the reply's text
54
- after its last tool call. Text written between tool calls can be collapsed or
55
- lost. When the reply ends with a question card, that text goes after every
56
- other tool call, right before the card.
47
+ Put the answer and anything the user must act on in the text after the reply's last tool call; some hosts hide earlier text behind a summary row. Finish bookkeeping first. If a tool call must follow the answer, repeat the whole answer after it, with any closing lines the rules ask for (such as the parked-item note), unless that call is a question-card tool call. When the reply ends with a question-card tool call, that text goes right before the card.
57
48
 
58
49
  Verify work with completed checks and their output. Confirm each check's exit status or final
59
50
  result before claiming a pass, and do not hide failures by filtering output. Report changes,