@bompus/house-rules 0.0.0-stage → 0.11.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 (191) hide show
  1. package/CONTRIBUTING.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +347 -2
  4. package/THIRD_PARTY_NOTICES.md +188 -0
  5. package/compose.mjs +119 -0
  6. package/composition.mjs +353 -0
  7. package/config-view.mjs +194 -0
  8. package/config.mjs +320 -0
  9. package/docs/assets/banner-dark.png +0 -0
  10. package/docs/assets/banner-light.png +0 -0
  11. package/docs/assets/overview.png +0 -0
  12. package/docs/configuration.md +193 -0
  13. package/docs/npm-release.md +45 -0
  14. package/docs/skill-names.md +50 -0
  15. package/examples/person/house-rules.json +15 -0
  16. package/examples/person/rules/10-tooling.md +8 -0
  17. package/examples/person/rules/20-reporting.md +9 -0
  18. package/examples/project/AGENTS.md +18 -0
  19. package/package.json +40 -4
  20. package/rule-references.mjs +91 -0
  21. package/rules/core.md +431 -0
  22. package/rules/modifiers/coded-offers.md +40 -0
  23. package/rules/modifiers/effort-estimates.md +41 -0
  24. package/rules/modifiers/land-when-done.md +12 -0
  25. package/rules/modifiers/low-quota-handoff.md +19 -0
  26. package/rules/modifiers/multi-agent.md +34 -0
  27. package/rules/modifiers/no-attribution.md +10 -0
  28. package/rules/modifiers/plan-files.md +50 -0
  29. package/rules/modifiers/question-cards.md +48 -0
  30. package/rules/modifiers/release-batching.md +13 -0
  31. package/rules/modifiers/scratch-on-disk.md +15 -0
  32. package/rules/modifiers/shared-host-load.md +48 -0
  33. package/rules/modifiers/solo-operator.md +13 -0
  34. package/rules/modifiers/squash-landing.md +22 -0
  35. package/rules/modifiers/swarmail.md +12 -0
  36. package/rules/references/github-actions.md +45 -0
  37. package/rules/references/landing.md +39 -0
  38. package/rules/references/multi-agent.md +47 -0
  39. package/rules/references/release-batching.md +43 -0
  40. package/rules/references/squash-landing.md +44 -0
  41. package/setup.mjs +375 -0
  42. package/skills/hr-agent-guidance-audit/LICENSE +21 -0
  43. package/skills/hr-agent-guidance-audit/SKILL.md +86 -0
  44. package/skills/hr-agent-guidance-audit/agents/openai.yaml +2 -0
  45. package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +60 -0
  46. package/skills/hr-agent-guidance-refresh/LICENSE +21 -0
  47. package/skills/hr-agent-guidance-refresh/SKILL.md +68 -0
  48. package/skills/hr-agent-guidance-refresh/agents/openai.yaml +2 -0
  49. package/skills/hr-agent-guidance-refresh/references/verification.md +47 -0
  50. package/skills/hr-api-exposure-check/SKILL.md +159 -0
  51. package/skills/hr-api-exposure-check/agents/openai.yaml +3 -0
  52. package/skills/hr-audit-choices/SKILL.md +67 -0
  53. package/skills/hr-audit-choices/agents/openai.yaml +2 -0
  54. package/skills/hr-benchmarking/NOTICE.md +36 -0
  55. package/skills/hr-benchmarking/SKILL.md +316 -0
  56. package/skills/hr-benchmarking/agents/openai.yaml +2 -0
  57. package/skills/hr-benchmarking/references/javascript.md +17 -0
  58. package/skills/hr-benchmarking/references/priority-findings-20261006.md +115 -0
  59. package/skills/hr-benchmarking/references/tools.md +160 -0
  60. package/skills/hr-benchmarking/scripts/process-attribution.ps1 +20 -0
  61. package/skills/hr-benchmarking/scripts/process-attribution.py +107 -0
  62. package/skills/hr-better-accessibility/LICENSE +22 -0
  63. package/skills/hr-better-accessibility/NOTICE.md +46 -0
  64. package/skills/hr-better-accessibility/SKILL.md +119 -0
  65. package/skills/hr-better-accessibility/agents/openai.yaml +3 -0
  66. package/skills/hr-better-accessibility/focus-and-keyboard.md +130 -0
  67. package/skills/hr-better-accessibility/forms.md +82 -0
  68. package/skills/hr-better-accessibility/hit-areas.md +98 -0
  69. package/skills/hr-better-accessibility/motion-and-zoom.md +81 -0
  70. package/skills/hr-better-accessibility/screen-readers.md +101 -0
  71. package/skills/hr-better-accessibility/semantics-and-aria.md +84 -0
  72. package/skills/hr-better-colors/LICENSE +21 -0
  73. package/skills/hr-better-colors/NOTICE.md +37 -0
  74. package/skills/hr-better-colors/SKILL.md +114 -0
  75. package/skills/hr-better-colors/agents/openai.yaml +3 -0
  76. package/skills/hr-better-colors/color-formats.md +90 -0
  77. package/skills/hr-better-colors/color-usage.md +140 -0
  78. package/skills/hr-better-colors/contrast.md +80 -0
  79. package/skills/hr-better-colors/palette-generation.md +104 -0
  80. package/skills/hr-better-colors/palette-structure.md +76 -0
  81. package/skills/hr-better-colors/token-naming.md +97 -0
  82. package/skills/hr-better-layout/LICENSE +22 -0
  83. package/skills/hr-better-layout/NOTICE.md +48 -0
  84. package/skills/hr-better-layout/SKILL.md +92 -0
  85. package/skills/hr-better-layout/agents/openai.yaml +3 -0
  86. package/skills/hr-better-layout/grouping-and-alignment.md +144 -0
  87. package/skills/hr-better-layout/spacing-and-adaptivity.md +215 -0
  88. package/skills/hr-better-typography/LICENSE +22 -0
  89. package/skills/hr-better-typography/NOTICE.md +46 -0
  90. package/skills/hr-better-typography/SKILL.md +172 -0
  91. package/skills/hr-better-typography/agents/openai.yaml +3 -0
  92. package/skills/hr-better-typography/choosing-fonts.md +69 -0
  93. package/skills/hr-better-typography/css-cheat-sheet.md +65 -0
  94. package/skills/hr-better-typography/details-and-accessibility.md +119 -0
  95. package/skills/hr-better-typography/spacing-and-sizing.md +131 -0
  96. package/skills/hr-better-typography/variable-fonts-and-opentype.md +105 -0
  97. package/skills/hr-better-typography/wrapping-and-punctuation.md +57 -0
  98. package/skills/hr-better-writing/LICENSE +22 -0
  99. package/skills/hr-better-writing/NOTICE.md +46 -0
  100. package/skills/hr-better-writing/SKILL.md +122 -0
  101. package/skills/hr-better-writing/agents/openai.yaml +3 -0
  102. package/skills/hr-change-impact/SKILL.md +113 -0
  103. package/skills/hr-change-impact/agents/openai.yaml +5 -0
  104. package/skills/hr-code-review/LICENSE +21 -0
  105. package/skills/hr-code-review/NOTICE.md +26 -0
  106. package/skills/hr-code-review/SKILL.md +147 -0
  107. package/skills/hr-code-review/agents/openai.yaml +3 -0
  108. package/skills/hr-code-review/references/evidence.md +57 -0
  109. package/skills/hr-design-exploration/SKILL.md +82 -0
  110. package/skills/hr-design-exploration/agents/openai.yaml +4 -0
  111. package/skills/hr-diagnosing-bugs/NOTICE.md +45 -0
  112. package/skills/hr-diagnosing-bugs/SKILL.md +108 -0
  113. package/skills/hr-diagnosing-bugs/agents/openai.yaml +3 -0
  114. package/skills/hr-diagnosing-bugs/references/reporting.md +72 -0
  115. package/skills/hr-explain-code/NOTICE.md +37 -0
  116. package/skills/hr-explain-code/SKILL.md +110 -0
  117. package/skills/hr-explain-code/agents/openai.yaml +5 -0
  118. package/skills/hr-explain-code/references/helper-brief.md +39 -0
  119. package/skills/hr-extract-shared-steps/SKILL.md +134 -0
  120. package/skills/hr-extract-shared-steps/agents/openai.yaml +3 -0
  121. package/skills/hr-handoff/SKILL.md +91 -0
  122. package/skills/hr-handoff/agents/openai.yaml +5 -0
  123. package/skills/hr-handoff/assets/ledger.example.json +10 -0
  124. package/skills/hr-handoff/assets/receipt.example.json +76 -0
  125. package/skills/hr-handoff/assets/source.example.json +20 -0
  126. package/skills/hr-handoff/references/reconciliation.md +105 -0
  127. package/skills/hr-handoff/scripts/check-reconciliation.mjs +282 -0
  128. package/skills/hr-house-rules-setup/SKILL.md +100 -0
  129. package/skills/hr-house-rules-setup/agents/openai.yaml +5 -0
  130. package/skills/hr-issue-tracker-setup/SKILL.md +49 -0
  131. package/skills/hr-issue-tracker-setup/agents/openai.yaml +5 -0
  132. package/skills/hr-lean-plan/SKILL.md +142 -0
  133. package/skills/hr-lean-plan/agents/openai.yaml +5 -0
  134. package/skills/hr-maintainability-review/SKILL.md +176 -0
  135. package/skills/hr-maintainability-review/agents/openai.yaml +5 -0
  136. package/skills/hr-manual-qa/NOTICE.md +36 -0
  137. package/skills/hr-manual-qa/SKILL.md +37 -0
  138. package/skills/hr-manual-qa/agents/openai.yaml +3 -0
  139. package/skills/hr-navigation-retro/LICENSE +21 -0
  140. package/skills/hr-navigation-retro/NOTICE.md +5 -0
  141. package/skills/hr-navigation-retro/SKILL.md +86 -0
  142. package/skills/hr-navigation-retro/agents/openai.yaml +4 -0
  143. package/skills/hr-navigation-retro/references/inputs.md +67 -0
  144. package/skills/hr-navigation-retro/scripts/retro.py +552 -0
  145. package/skills/hr-navigation-retro/scripts/transcripts.py +205 -0
  146. package/skills/hr-ordering-tests/SKILL.md +51 -0
  147. package/skills/hr-ordering-tests/agents/openai.yaml +2 -0
  148. package/skills/hr-plain-prose/SKILL.md +261 -0
  149. package/skills/hr-plain-prose/agents/openai.yaml +3 -0
  150. package/skills/hr-plain-prose/scripts/check.mjs +331 -0
  151. package/skills/hr-pr-followup/LICENSE +21 -0
  152. package/skills/hr-pr-followup/NOTICE.md +9 -0
  153. package/skills/hr-pr-followup/SKILL.md +71 -0
  154. package/skills/hr-pr-followup/agents/openai.yaml +2 -0
  155. package/skills/hr-pr-followup/references/review-helpers.md +90 -0
  156. package/skills/hr-pr-followup/scripts/check-pr-review.ts +510 -0
  157. package/skills/hr-pr-followup/scripts/resolve-pr-thread.ts +219 -0
  158. package/skills/hr-progress-report/SKILL.md +49 -0
  159. package/skills/hr-progress-report/agents/openai.yaml +5 -0
  160. package/skills/hr-read-reddit/SKILL.md +44 -0
  161. package/skills/hr-read-reddit/agents/openai.yaml +2 -0
  162. package/skills/hr-read-reddit/scripts/reddit.ts +252 -0
  163. package/skills/hr-read-x-links/SKILL.md +42 -0
  164. package/skills/hr-read-x-links/agents/openai.yaml +2 -0
  165. package/skills/hr-read-x-links/scripts/x-post.ts +264 -0
  166. package/skills/hr-split-to-prs/LICENSE +21 -0
  167. package/skills/hr-split-to-prs/NOTICE.md +9 -0
  168. package/skills/hr-split-to-prs/SKILL.md +61 -0
  169. package/skills/hr-split-to-prs/agents/openai.yaml +2 -0
  170. package/skills/hr-stock-ui-audit/SKILL.md +132 -0
  171. package/skills/hr-stock-ui-audit/agents/openai.yaml +3 -0
  172. package/skills/hr-stock-ui-audit/scripts/scan.mjs +619 -0
  173. package/skills/hr-tdd/LICENSE +21 -0
  174. package/skills/hr-tdd/NOTICE.md +10 -0
  175. package/skills/hr-tdd/SKILL.md +40 -0
  176. package/skills/hr-tdd/agents/openai.yaml +3 -0
  177. package/skills/hr-tdd/mocking.md +39 -0
  178. package/skills/hr-tdd/tests.md +77 -0
  179. package/skills/hr-test-audit/SKILL.md +146 -0
  180. package/skills/hr-test-audit/agents/openai.yaml +3 -0
  181. package/skills/hr-test-audit/scripts/floor-guard.ts +137 -0
  182. package/skills/hr-what-next/SKILL.md +61 -0
  183. package/skills/hr-what-next/agents/openai.yaml +4 -0
  184. package/skills/hr-what-next/references/reporting.md +68 -0
  185. package/skills/hr-writing-for-agents/NOTICE.md +46 -0
  186. package/skills/hr-writing-for-agents/SKILL-MECHANICS.md +83 -0
  187. package/skills/hr-writing-for-agents/SKILL.md +108 -0
  188. package/skills/hr-writing-for-agents/agents/openai.yaml +3 -0
  189. package/skills/hr-writing-pr/NOTICE.md +48 -0
  190. package/skills/hr-writing-pr/SKILL.md +104 -0
  191. package/skills/hr-writing-pr/agents/openai.yaml +2 -0
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: When the current model's usage allowance runs low, write a handoff before work stops.
3
+ after: Finishing work
4
+ requires: hr-handoff
5
+ ---
6
+
7
+ ## Low-quota handoff
8
+
9
+ Check your remaining usage allowance at session start or resume, after a model
10
+ switch and before substantial new work, using a reading the host shows or the
11
+ user reports. When a fresh reading shows the current session's provider and
12
+ model with less than 5% of its daily, weekly or monthly allowance left, use the
13
+ `hr-handoff` skill to checkpoint the work. Another model being low, context size
14
+ and token totals do not trigger it. When no reliable reading is available, say
15
+ once that detection is unverified; never guess a low balance or poll for one.
16
+
17
+ This handoff is a stop under § End of every reply: after saving it, end the
18
+ reply with the handoff report and its recorded next action, which serve as the
19
+ offer, and do no further work until the user resumes it.
@@ -0,0 +1,34 @@
1
+ ---
2
+ description: Work is split across delegated workers and several agent hosts; worker reports, review standards and cleanup checks account for all of them.
3
+ after: Coordination and isolation
4
+ reference: ../references/multi-agent.md
5
+ ---
6
+
7
+ ## Working with other agents
8
+
9
+ Keep delegation within the user's authorization and responsibility in the current
10
+ conversation. Before delegating work, reviewing a worker, requesting a follow-up
11
+ review, creating a task worktree, or cleaning up a branch, directory or worktree
12
+ manually or on a schedule, read [the agent-work procedure](../references/multi-agent.md).
13
+
14
+ An incomplete worker report is a checkpoint. A worker with a background command
15
+ or subagent still running is not done. Verify reports against evidence and use
16
+ host durations or timestamps for elapsed time. Keep workers from delegating
17
+ further unless asked.
18
+
19
+ Give implementers the task, file boundaries, public APIs and architectural
20
+ constraints. Put mechanically enforceable standards in tooling; reserve style
21
+ and judgment for review. The user's direction is the judgment backstop when
22
+ no second reviewer runs. An advisor model is not a second review.
23
+
24
+ After review, fix findings and run relevant checks. A logic change permits a
25
+ follow-up review but does not require one. Request it only for a named risk
26
+ local checks cannot resolve. Record its scope and round limit first; further
27
+ fixes do not reset that limit. At the limit, get the user's direction before
28
+ another model round. Required repository checks and review gates still apply.
29
+
30
+ Before cleanup, verify no installed agent host's active, idle, paused,
31
+ disconnected or resumable session uses the path or branch. Include equivalent
32
+ paths and child directories, and recheck immediately before deleting. Skip
33
+ scheduled cleanup when qualification is incomplete. Leave app-managed or other
34
+ sessions' work to their owners; follow the procedure and § Cleanup.
@@ -0,0 +1,10 @@
1
+ ---
2
+ description: Commits, pull requests and comments carry no agent or tool credit lines.
3
+ after: Writing
4
+ ---
5
+
6
+ ## No attribution
7
+
8
+ Commits, pull requests, issues and comments carry no agent or tool credit: no
9
+ "Generated with" lines, no `Co-Authored-By` agent trailers, no "Made with"
10
+ footers. Where a host has a setting that turns attribution off, set it.
@@ -0,0 +1,50 @@
1
+ ---
2
+ description: Multi-step work keeps a visible task list mirrored to a plan file with a ledger of every item's outcome.
3
+ after: Durable notes
4
+ ---
5
+
6
+ ## Task tracking
7
+
8
+ For work with two or more steps, create the task list up front, keep exactly
9
+ one item in progress and mark each item done as it finishes. When no task tool
10
+ is available, keep the list in short progress messages and say so once.
11
+
12
+ Mirror the list to a plan file: the project's plans directory when it documents
13
+ one, otherwise `plans/<topic>/plan.md` in your notes directory (§ Durable
14
+ notes). At session start, read the relevant plans and every `blocked-on-user`
15
+ plan whatever its owner, so unanswered decisions stay visible; that read is not
16
+ the sweep below. Update the plan when you update the list, add findings as they
17
+ turn up, and use the same item states in both. At each reconciliation event in
18
+ § Finishing work, update both records before choosing the next action. Point at
19
+ the plan or handoff that owns an item instead of copying it; a handoff points
20
+ at its plan.
21
+
22
+ - Head the plan with `Owner:` (session name, or `none` for a shared backlog)
23
+ and `Status:` (`active`, `paused`, `blocked-on-user`, `completed`); update both
24
+ when they change.
25
+ - For substantial plans, state the intended outcome and the evidence that will
26
+ show it is done; update both when findings change the task.
27
+ - When new work arrives mid-task, add it as pending before switching; never
28
+ drop an in-progress item silently.
29
+ - Keep the whole ledger in the plan: deferred items, follow-ups and incidental
30
+ findings with a one-line disposition (`user-flagged`, `deferred-by`,
31
+ `blocked-by`, `low priority`), and closed items with their outcome (landed
32
+ commit, won't do and why, moved elsewhere) and start and end times. Note the
33
+ start time when you pick an item up.
34
+ - When repeated attempts leave an item unresolved without new evidence, record
35
+ whether it is blocked, deferred or using an approach that is not working. For
36
+ an approach that is not working, change method within the authorized scope,
37
+ or propose a smaller deliverable or dropping the item; the user decides scope
38
+ changes and drops. Judge progress by evidence, not age or retry counts;
39
+ waiting on a dependency or ruling out a hypothesis does not by itself show
40
+ that an approach is not working.
41
+ - Before archiving a completed plan, save its completed status, completion
42
+ time and evidence. Apply § Finishing work before marking the whole session
43
+ completed. Then move the plan to `plans/archive/<topic>-<date>/` beside it.
44
+
45
+ Sweep other sessions' plans and handoffs only when the user asks, such as
46
+ "what's waiting on me?", and only for the current project. Offer unowned items,
47
+ `blocked-on-user` items and items whose owner has no live session in the host's
48
+ session list or coordination roster, naming each owner. When you cannot tell
49
+ whether an owner is live, or who owns an item, mention it as another session's
50
+ context instead of offering it.
@@ -0,0 +1,48 @@
1
+ ---
2
+ description: Opt in to question cards beside complete text offers when the host supports them; availability and presentation can vary by host, provider and model.
3
+ after: Offers
4
+ ---
5
+
6
+ ## Question cards
7
+
8
+ This modifier opts in to cards beside text. Availability, invocation and
9
+ presentation can vary by host, provider and model: a card may be unavailable,
10
+ skipped or shown unexpectedly. Keep the complete text offer usable on its
11
+ own; do not promise identical behavior across sessions. If the user chooses
12
+ text only, disable this modifier and do not call question-card tools, even
13
+ when they are exposed.
14
+
15
+ Asking the user to choose between options is an offer, even when the user
16
+ asked you to ask them, so it gets the full text offer on every host.
17
+
18
+ When your host gives you a multiple-choice question tool (one that shows the
19
+ user a question with selectable options), send every offer as a question card
20
+ as well as text, unless the choice depends on content only the text carries:
21
+ images, tables, code, links, or a comparison longer than a card option holds.
22
+ Some hosts show the card before the text written ahead of it, so the user
23
+ would answer without that content. Send those offers as text alone.
24
+
25
+ 1. Write the complete text offer first, with every part § Offers lists. A
26
+ one-line question, a line saying you will ask, or no text at all is not a
27
+ text offer. The card never replaces it, because some hosts cannot display
28
+ cards and some drop short text sent beside one.
29
+ 2. In the same reply, right after the text offer, call the tool. Do not end
30
+ the reply between the two.
31
+ 3. Ask one card question per offer question, in the same order. Give each
32
+ option the label it has in the text offer, code included when the offer
33
+ uses codes, with "(Recommended)" where the text offer has it: for example
34
+ `1A (Recommended) pylon` under coded offers, not `pylon`. Write each
35
+ option's description so it stands alone, saying what the option does and
36
+ what it costs or risks: on some hosts the card is all the user sees before
37
+ answering. Use multi-select when the options combine. Leave out an "Other"
38
+ option; hosts add their own free-text choice.
39
+ 4. Treat the card's answer as a typed reply naming the same options. On some
40
+ hosts the answer arrives as a new turn; it still answers the offer.
41
+
42
+ When no such tool is available, send the text offer alone. Do not search for
43
+ a substitute or call another tool in its place.
44
+
45
+ When you answer a card that a delegated agent raised, key each answer by the
46
+ question id in the request, because hosts use different ids. Then read the
47
+ agent's result again: some hosts report the task finished while its card
48
+ waits and deliver the real result only after the answer.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: Batch approved, compatible changes for releases and audit factual claims before releases or public announcements.
3
+ after: Landing
4
+ reference: ../references/release-batching.md
5
+ ---
6
+
7
+ ## Release batching
8
+
9
+ Landing does not authorize publishing. Follow the repository's release requirements.
10
+ Before preparing or publishing a release or public announcement, read
11
+ [the release procedure](../references/release-batching.md), including its factual
12
+ accuracy audit. Do not publish with unresolved accuracy blockers or expand scope
13
+ to new benchmarks.
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Task scratch lives on disk under the user data directory, never in RAM-backed /tmp.
3
+ after: Durable notes
4
+ ---
5
+
6
+ ## Scratch files
7
+
8
+ Keep task scratch on disk-backed storage, under `tmp/<topic>/` in your notes
9
+ directory (§ Durable notes), even when a tool or harness defaults to `/tmp` or
10
+ to a temp path it pre-approves. On many Linux systems
11
+ `/tmp` is RAM-backed, so large files there compete with running programs for
12
+ memory. Files that can approach 1 GB (databases, traces, downloads, extracted
13
+ archives) never go there, whatever a tool's default says. Write in-progress
14
+ receipts straight to their final location, and delete scratch when the task
15
+ ends.
@@ -0,0 +1,48 @@
1
+ ---
2
+ description: Coordinate shared local work within host-defined resource budgets; isolate measurements and release reservations during remote waits.
3
+ after: Coordination and isolation
4
+ ---
5
+
6
+ ## Shared machine load
7
+
8
+ When local work shares a host, follow its declared CPU, memory and I/O budgets
9
+ and admission procedure. Before resource-intensive builds, tests or tools,
10
+ check current load and running jobs. Choose concurrency and memory controls
11
+ within that budget, accounting for interactive use of the machine.
12
+
13
+ Classify each local phase and its actual commands, hooks and children. A phase
14
+ is resource-intensive when its expected CPU, memory or I/O demand exceeds the
15
+ host's concurrent-work budget.
16
+
17
+ Before calling demand unknown, inspect the command, its applicable hooks,
18
+ wrappers and children. When inspection establishes bounded demand within existing
19
+ host limits and the active measurement's light-work allowance, proceed without
20
+ fresh benchmark-owner permission, a collector or a measurement receipt.
21
+ Inspection is sufficient qualification; missing resource samples alone is not
22
+ a blocker. Use the host's admission procedure when inspection cannot establish
23
+ that the complete invocation fits the host's budget and any active measurement's
24
+ light-work allowance. Admit the complete invocation when its children
25
+ need admission, and retain required hooks. This resource permission does not
26
+ lift checkout ownership, shared-write serialization, named input freezes or
27
+ explicit operation-specific user restrictions. A retained benchmark lock alone
28
+ does not suspend permitted light work.
29
+
30
+ Without a budget or qualification procedure, get
31
+ operator direction before launching parallel local workers or commands that
32
+ build, test, index or process an entire repository or dataset. Bounded reads
33
+ and edits may continue. Coordinate competing phases without blocking whole
34
+ sessions.
35
+
36
+ Use an exclusive slot when the host policy requires one or a local performance
37
+ measurement needs isolation. Remote inference, light CLI/API work and remote
38
+ waits need no exclusive slot. A memory cap, an agent/model comparison or
39
+ recording elapsed time alone does not make a phase heavy. Record timing
40
+ conditions and concurrent local work for shared or remote evaluations.
41
+
42
+ Other sessions may continue light reads, edits and remote requests within the
43
+ reservation's budget. Preserve measured files, runtimes, dependencies and
44
+ services. During isolated local performance measurements, the measuring session
45
+ only monitors. Release reservations while waiting on remote work or review.
46
+
47
+ Constrain work that risks exhausting memory using the host's supported controls.
48
+ Check host evidence of memory pressure before retrying with a larger budget.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: For repositories with one maintainer, the user's direction is the review; no review-gated steps.
3
+ after: Landing
4
+ ---
5
+
6
+ ## Solo operator
7
+
8
+ The user's repositories have no second reviewer: the user's explicit direction
9
+ is the review. Never offer "await review", "open a pull request for review" or
10
+ any other review-gated next step. Land each task through a pull request, so
11
+ the pull request records why the default branch moved; skip it only for
12
+ trivially mechanical changes, or when the user, directly or in the
13
+ repository's own guidance, directs a direct push.
@@ -0,0 +1,22 @@
1
+ ---
2
+ description: Pull requests land by squash merge after review-bot findings are handled, and the session's checkout moves off the landed branch.
3
+ after: Landing
4
+ reference: ../references/squash-landing.md
5
+ ---
6
+
7
+ ## Squash landing
8
+
9
+ Prefer squash merges unless the repository requires another strategy or the user
10
+ picks one. Before integration, handling review feedback, or moving off a landed
11
+ branch, read [the squash procedure](../references/squash-landing.md).
12
+ When a review bot reviews pull requests, merge only after it finishes; fix or
13
+ answer all findings, resolve threads, and read the full review body.
14
+
15
+ During integration, never switch, reset, force-move or remove the session's
16
+ checkout. Default-branch updates must meet the fast-forward and ownership
17
+ conditions in § Landing. After the merge, fetch first; move off a landed branch
18
+ only when its content is in the base and the tree is clean. When the base is
19
+ checked out elsewhere, detach at the fetched base. Never merge, reset or stash
20
+ to move the checkout. Leave app-managed checkouts for the app to retire.
21
+ If the tree is dirty or ownership is uncertain, stand down and record its owner.
22
+ Update the task record and follow § Cleanup after each landing.
@@ -0,0 +1,12 @@
1
+ ---
2
+ description: Locate Swarmail-owned instructions and tool contracts for local session coordination.
3
+ after: Coordination and isolation
4
+ ---
5
+
6
+ ## Swarmail coordination
7
+
8
+ When Swarmail is connected, read its server instructions and tool contracts
9
+ before using it. If those instructions are unavailable or omit a needed detail,
10
+ read `swarmail --help` and `README.md` in its owning checkout at the installed
11
+ or host-approved revision. If available sources do not establish that detail,
12
+ report it as unverified rather than guessing the product's operations.
@@ -0,0 +1,45 @@
1
+ ## GitHub Actions
2
+
3
+ Inspect the current workflows, run logs and effective repository policies before
4
+ changing CI. Distinguish runner startup or action-policy failures from test
5
+ failures, timeouts and missing credentials. Preserve checks and assertions;
6
+ qualify timeout changes with the actual failing operation and comparable runs.
7
+ Give jobs finite timeouts. Cancel an older pull-request run only when a newer
8
+ run for the same pull request covers the same required checks; preserve required
9
+ default-branch and release evidence.
10
+
11
+ ### Choose the concurrency boundary
12
+
13
+ Independent jobs can run on separate runners. A job's steps normally run in
14
+ sequence, but GitHub also supports native parallel steps. Confirm current
15
+ [workflow syntax](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsparallel)
16
+ before using it; older model knowledge may omit this capability.
17
+
18
+ - A `parallel` group starts its steps together and waits for the group.
19
+ - `background: true` starts a step without waiting. Use its `id` with `wait` or
20
+ `cancel`, or use `wait-all` to wait for every active background step, as the
21
+ dependency and failure policy requires.
22
+ - Parallel steps share a runner, workspace and resource budget. Inspect writes,
23
+ caches, outputs and prerequisites before overlapping commands. Install shared
24
+ dependencies first. Do not infer a speedup without measurements.
25
+ - Workflow `concurrency` controls overlapping runs; it does not parallelize steps.
26
+
27
+ Keep failure propagation and required evidence intact. More parallelism can
28
+ increase contention or duplicate work. Prefer the smallest independent group
29
+ that addresses a measured or operational need.
30
+
31
+ ### Forks and notifications
32
+
33
+ Establish whether a fork is maintained independently or only hosts contributions
34
+ upstream. Honor that purpose before enabling workflows, publishing or changing
35
+ automation settings. Inspect repository Actions permissions separately from
36
+ workflow triggers and notification subscriptions.
37
+
38
+ Disabling repository Actions stops ordinary workflows, but enabled Dependabot
39
+ can still run on Actions. Check dependency-update automation separately when
40
+ investigating continuing runs. Keep security alerts and notification preferences
41
+ distinct from update automation; do not silence unrelated failures.
42
+
43
+ Sources: [parallel-step announcement](https://github.blog/changelog/2026-06-25-actions-steps-can-now-be-run-in-parallel/),
44
+ [Actions settings](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository),
45
+ [Dependabot on Actions](https://docs.github.com/en/code-security/concepts/supply-chain-security/dependabot-on-actions).
@@ -0,0 +1,39 @@
1
+ ## Landing
2
+
3
+ A branch or worktree is an intermediate step. Land a change (merge or push it
4
+ into the remote default branch) only when the user has directed it, for this
5
+ task or as a standing rule in their rules or the repository's guidance. Until
6
+ then, a task finishes committed on its branch with landing offered. Choosing an
7
+ offer option that includes landing, or replying with the accept line when the
8
+ recommended option includes it, is that direction.
9
+
10
+ At task completion, unlanded commits or uncommitted task changes get one landing
11
+ option, never a bare done or a commit alone; only an explicit user deferral leaves
12
+ them out, recorded with the branch, the commits and the reason. Write it as
13
+ `Land PR #<n>` or `Commit and land <change>`. Landing is the whole sequence in
14
+ this section and § Cleanup; do not list its steps in the option. Name only
15
+ what departs from that sequence, such as a direct merge or a step held for the
16
+ user. Choosing the option authorizes the whole landing, merge included. Land through the path the
17
+ repository requires (pull request or direct push), and never bypass required
18
+ checks. Landing is done when a fresh fetch shows the default branch contains
19
+ the change.
20
+
21
+ After integration:
22
+
23
+ - Fetch, then bring the local default branch current. When it is clean,
24
+ strictly behind and not checked out elsewhere, fast-forward it. When another
25
+ worktree has it checked out and you know no session or running job is using
26
+ that worktree (your own main checkout, for example), run `git pull --ff-only`
27
+ there; unrelated uncommitted files may stay. When you cannot tell, treat it
28
+ as in use. Confirm the local and fetched remote heads match.
29
+ - If the default branch is diverged, on another branch, in use, or the pull
30
+ refuses because local edits would be overwritten, leave it and report its
31
+ path and the blocker. Never merge, reset, stash or switch branches to make it
32
+ match, and never update other sessions' worktrees or separate clones.
33
+ - Delete the merged remote branch when it is this task's own branch
34
+ (`git push origin --delete <branch>` when the merge did not); § Cleanup
35
+ covers branches others may rely on. Before merging a pull request that another open pull
36
+ request targets, retarget that one to the default branch first.
37
+ - When the change landed by squash, verify the pull request's recorded squash
38
+ commit is in the fetched default branch and the intended changes landed; the
39
+ original feature commits need not be ancestors.
@@ -0,0 +1,47 @@
1
+ ## Working with other agents
2
+
3
+ A worker's report that leaves items open without naming a blocker is a
4
+ checkpoint, not completion: send it back naming them, and after two or three
5
+ continuations review the work yourself. A worker with a background command or
6
+ subagent still running is not done. Take its elapsed time from the host's
7
+ durations or timestamps, not from its report. When wall-clock time matters,
8
+ give a budget and restate the elapsed time in each follow-up, or say that an
9
+ earlier correct result beats a later one; budgets are advisory, hard timeouts
10
+ are not. Reuse workers for related follow-ups, do independent work while they
11
+ run instead of polling, and keep workers from delegating further unless asked.
12
+
13
+ Split standards by where they are enforced. Give implementers the task, file
14
+ boundaries, public APIs and load-bearing architectural constraints, even ones
15
+ no tool can check. Keep style and judgment calls for the review pass, where the
16
+ reviewer reads the applicable guidance itself; a convention that does not fit
17
+ one line with a yes/no test is taste and reviewer-only. What a formatter,
18
+ linter, type check or automated gate can enforce belongs in tooling for both,
19
+ never in prose for either. When no second reviewer runs, the user's direction
20
+ is the only judgment backstop; say so instead of assuming review happened.
21
+ Asking an advisor model is not a second review.
22
+
23
+ After a model review, fix its findings and run the relevant checks. A fix
24
+ that changes code logic permits a follow-up review; it does not require one.
25
+ Code logic includes control flow, data handling, interfaces, queries and values
26
+ a program reads. Request a follow-up only for a named remaining risk that
27
+ local checks cannot resolve. Batch known fixes first, then focus the review on
28
+ changed logic and unresolved findings. Never restart a whole-change review
29
+ solely because a fix changed logic.
30
+
31
+ Before a follow-up, record its scope and round limit in the plan. A further
32
+ logic fix does not reset that limit. When the limit is reached, report any
33
+ remaining blocker and get the user's direction before another model round.
34
+ Fixes that touch only docs, comments, changelog text or tests ship on local
35
+ checks. The pull request body names the findings fixed and says when no
36
+ further round ran. Required repository checks and review gates still apply.
37
+
38
+ Before cleaning up a branch, directory or worktree by hand or on a schedule,
39
+ check that no session of any installed agent host uses it: session records and
40
+ workspace or branch associations as well as processes, including idle, paused,
41
+ disconnected and resumable sessions. Resolve equivalent paths and check
42
+ sessions in child directories before removing a parent. Recheck right before
43
+ deleting; scheduled cleanup skips what it could not verify. When you finish,
44
+ offer an app-managed session's branch to its owner for deletion, unless the
45
+ session is still on it. Before creating a task worktree, check the
46
+ repository's worktree list and report unexplained leftovers; `git worktree
47
+ prune --dry-run` shows stale registrations.
@@ -0,0 +1,43 @@
1
+ ## Release batching
2
+
3
+ When preparing or publishing a release, follow the repository's versioning,
4
+ changelog, release-channel, authorization and verification requirements.
5
+ Where those requirements allow it, batch compatible changes instead of
6
+ publishing a release for every landed change. Landing and publishing are
7
+ separate actions; authorization for one does not authorize the other.
8
+
9
+ Record completed changes in the repository's pending-release record using its
10
+ existing convention or automation. Keep unfinished work in the task plan.
11
+ Before publishing, review approved backlog work and open pull requests with
12
+ their owners. Include compatible changes that are ready or intended for the
13
+ next release. Record the included changes, unfinished items and release cutoff
14
+ or readiness condition in the task plan. Backlog items do not authorize
15
+ implementation or landing. Do not hold a ready batch for unrelated, unapproved
16
+ or indefinite work.
17
+
18
+ Before any release or public announcement, audit the README, comparisons,
19
+ performance metrics, relevant documentation, announcement plans and drafts,
20
+ and release notes against the intended revision or artifact and current
21
+ verified state. Record which materials were checked and the evidence for
22
+ claims in the task plan. Correct, add, remove or update content to resolve
23
+ outdated instructions, omissions, contradictions and unsupported claims.
24
+ Distinguish released, deployed and planned behavior; give performance claims
25
+ measurement conditions and evidence, and label unverified results. Preserve
26
+ historical results with their tested versions instead of presenting them as
27
+ current measurements.
28
+
29
+ Recheck affected claims when the candidate or supporting evidence changes.
30
+ Before publishing, resolve unsupported or contradictory claims by correcting,
31
+ qualifying or removing them; record any remaining accuracy blocker. Do not
32
+ publish material with an unresolved accuracy blocker. Use existing evidence;
33
+ this audit does not authorize new benchmarks, probes, source changes outside
34
+ the task, or publication. Follow the owning repository's requirements for any
35
+ needed correction or measurement. An urgent release may narrow the audit to
36
+ its published materials and affected claims, but must still verify them.
37
+
38
+ An urgent security, regression or compatibility fix can ship without waiting
39
+ for unfinished backlog work. Every release's notes must cover all unreleased
40
+ changes included in its artifact, including an urgent release. Choose the
41
+ version for the combined changes according to the repository's scheme.
42
+ Publishing still requires its normal authorization and checks; this modifier
43
+ adds no permission to tag, publish or change release automation.
@@ -0,0 +1,44 @@
1
+ ## Squash landing
2
+
3
+ Prefer squash merges for pull requests unless the repository requires another
4
+ strategy or the user picks one. With the GitHub CLI that is
5
+ `gh pr merge <n> --squash`; a bare `gh pr merge` can create a merge commit.
6
+ Do not pass `--delete-branch` when other worktrees may hold the head branch;
7
+ delete the remote branch with `git push origin --delete <branch>` instead.
8
+
9
+ When you integrate a task branch locally instead of through a pull request,
10
+ land it as standard commits, never as a "Merge branch" commit: `git merge
11
+ --squash` then commit with a message in the repository's commit convention,
12
+ or a fast-forward when the base has not moved. After a pull request merges,
13
+ do not also squash the branch locally.
14
+
15
+ When a review bot reviews pull requests, merge only after its check finishes
16
+ and each finding is fixed or answered with a reason, threads resolved. Read
17
+ the review body too: findings outside the diff arrive there, not as threads.
18
+
19
+ During integration, never switch, reset or remove the session's own checkout: no
20
+ `checkout` or `switch` to another ref, no `reset` or branch force-move, and no
21
+ `worktree remove` on it. Updating the default branch it has checked out
22
+ (`merge --squash`, `merge --ff-only`, or `pull --ff-only` after a remote merge)
23
+ under the fast-forward conditions in § Landing is expected; report other paths
24
+ to their owners.
25
+
26
+ After the merge, do not leave the session's own checkout on a landed branch.
27
+ Fetch first, then:
28
+
29
+ - When the content is fully in the base (a merged pull request whose remote
30
+ head is deleted, or an empty content diff after a squash) and the tree is
31
+ clean, move the checkout onto the fetched base: `git switch <base>` once the
32
+ local base is current, never merge, reset or stash. When another worktree
33
+ has the base checked out, detach at the fetched base (`git switch --detach
34
+ <remote>/<base>`) and create or switch to a branch before any further
35
+ commits.
36
+ - When an app manages the checkout, leave it: the app retires it, and the
37
+ report does not mention it.
38
+ - When the tree is dirty or ownership is in doubt, stand down: record the
39
+ merged commit, the checkout path and the owner wherever you track the task.
40
+
41
+ After each landing, update the task list and any active handoff with the
42
+ commit, the verification result and the remaining work, then retire the task
43
+ worktree and branch under § Cleanup. Stop earlier only when the user asks or
44
+ integration is blocked, and report the exact blocker.