@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.
- package/CONTRIBUTING.md +54 -0
- package/LICENSE +21 -0
- package/README.md +347 -2
- package/THIRD_PARTY_NOTICES.md +188 -0
- package/compose.mjs +119 -0
- package/composition.mjs +353 -0
- package/config-view.mjs +194 -0
- package/config.mjs +320 -0
- package/docs/assets/banner-dark.png +0 -0
- package/docs/assets/banner-light.png +0 -0
- package/docs/assets/overview.png +0 -0
- package/docs/configuration.md +193 -0
- package/docs/npm-release.md +45 -0
- package/docs/skill-names.md +50 -0
- package/examples/person/house-rules.json +15 -0
- package/examples/person/rules/10-tooling.md +8 -0
- package/examples/person/rules/20-reporting.md +9 -0
- package/examples/project/AGENTS.md +18 -0
- package/package.json +40 -4
- package/rule-references.mjs +91 -0
- package/rules/core.md +431 -0
- package/rules/modifiers/coded-offers.md +40 -0
- package/rules/modifiers/effort-estimates.md +41 -0
- package/rules/modifiers/land-when-done.md +12 -0
- package/rules/modifiers/low-quota-handoff.md +19 -0
- package/rules/modifiers/multi-agent.md +34 -0
- package/rules/modifiers/no-attribution.md +10 -0
- package/rules/modifiers/plan-files.md +50 -0
- package/rules/modifiers/question-cards.md +48 -0
- package/rules/modifiers/release-batching.md +13 -0
- package/rules/modifiers/scratch-on-disk.md +15 -0
- package/rules/modifiers/shared-host-load.md +48 -0
- package/rules/modifiers/solo-operator.md +13 -0
- package/rules/modifiers/squash-landing.md +22 -0
- package/rules/modifiers/swarmail.md +12 -0
- package/rules/references/github-actions.md +45 -0
- package/rules/references/landing.md +39 -0
- package/rules/references/multi-agent.md +47 -0
- package/rules/references/release-batching.md +43 -0
- package/rules/references/squash-landing.md +44 -0
- package/setup.mjs +375 -0
- package/skills/hr-agent-guidance-audit/LICENSE +21 -0
- package/skills/hr-agent-guidance-audit/SKILL.md +86 -0
- package/skills/hr-agent-guidance-audit/agents/openai.yaml +2 -0
- package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +60 -0
- package/skills/hr-agent-guidance-refresh/LICENSE +21 -0
- package/skills/hr-agent-guidance-refresh/SKILL.md +68 -0
- package/skills/hr-agent-guidance-refresh/agents/openai.yaml +2 -0
- package/skills/hr-agent-guidance-refresh/references/verification.md +47 -0
- package/skills/hr-api-exposure-check/SKILL.md +159 -0
- package/skills/hr-api-exposure-check/agents/openai.yaml +3 -0
- package/skills/hr-audit-choices/SKILL.md +67 -0
- package/skills/hr-audit-choices/agents/openai.yaml +2 -0
- package/skills/hr-benchmarking/NOTICE.md +36 -0
- package/skills/hr-benchmarking/SKILL.md +316 -0
- package/skills/hr-benchmarking/agents/openai.yaml +2 -0
- package/skills/hr-benchmarking/references/javascript.md +17 -0
- package/skills/hr-benchmarking/references/priority-findings-20261006.md +115 -0
- package/skills/hr-benchmarking/references/tools.md +160 -0
- package/skills/hr-benchmarking/scripts/process-attribution.ps1 +20 -0
- package/skills/hr-benchmarking/scripts/process-attribution.py +107 -0
- package/skills/hr-better-accessibility/LICENSE +22 -0
- package/skills/hr-better-accessibility/NOTICE.md +46 -0
- package/skills/hr-better-accessibility/SKILL.md +119 -0
- package/skills/hr-better-accessibility/agents/openai.yaml +3 -0
- package/skills/hr-better-accessibility/focus-and-keyboard.md +130 -0
- package/skills/hr-better-accessibility/forms.md +82 -0
- package/skills/hr-better-accessibility/hit-areas.md +98 -0
- package/skills/hr-better-accessibility/motion-and-zoom.md +81 -0
- package/skills/hr-better-accessibility/screen-readers.md +101 -0
- package/skills/hr-better-accessibility/semantics-and-aria.md +84 -0
- package/skills/hr-better-colors/LICENSE +21 -0
- package/skills/hr-better-colors/NOTICE.md +37 -0
- package/skills/hr-better-colors/SKILL.md +114 -0
- package/skills/hr-better-colors/agents/openai.yaml +3 -0
- package/skills/hr-better-colors/color-formats.md +90 -0
- package/skills/hr-better-colors/color-usage.md +140 -0
- package/skills/hr-better-colors/contrast.md +80 -0
- package/skills/hr-better-colors/palette-generation.md +104 -0
- package/skills/hr-better-colors/palette-structure.md +76 -0
- package/skills/hr-better-colors/token-naming.md +97 -0
- package/skills/hr-better-layout/LICENSE +22 -0
- package/skills/hr-better-layout/NOTICE.md +48 -0
- package/skills/hr-better-layout/SKILL.md +92 -0
- package/skills/hr-better-layout/agents/openai.yaml +3 -0
- package/skills/hr-better-layout/grouping-and-alignment.md +144 -0
- package/skills/hr-better-layout/spacing-and-adaptivity.md +215 -0
- package/skills/hr-better-typography/LICENSE +22 -0
- package/skills/hr-better-typography/NOTICE.md +46 -0
- package/skills/hr-better-typography/SKILL.md +172 -0
- package/skills/hr-better-typography/agents/openai.yaml +3 -0
- package/skills/hr-better-typography/choosing-fonts.md +69 -0
- package/skills/hr-better-typography/css-cheat-sheet.md +65 -0
- package/skills/hr-better-typography/details-and-accessibility.md +119 -0
- package/skills/hr-better-typography/spacing-and-sizing.md +131 -0
- package/skills/hr-better-typography/variable-fonts-and-opentype.md +105 -0
- package/skills/hr-better-typography/wrapping-and-punctuation.md +57 -0
- package/skills/hr-better-writing/LICENSE +22 -0
- package/skills/hr-better-writing/NOTICE.md +46 -0
- package/skills/hr-better-writing/SKILL.md +122 -0
- package/skills/hr-better-writing/agents/openai.yaml +3 -0
- package/skills/hr-change-impact/SKILL.md +113 -0
- package/skills/hr-change-impact/agents/openai.yaml +5 -0
- package/skills/hr-code-review/LICENSE +21 -0
- package/skills/hr-code-review/NOTICE.md +26 -0
- package/skills/hr-code-review/SKILL.md +147 -0
- package/skills/hr-code-review/agents/openai.yaml +3 -0
- package/skills/hr-code-review/references/evidence.md +57 -0
- package/skills/hr-design-exploration/SKILL.md +82 -0
- package/skills/hr-design-exploration/agents/openai.yaml +4 -0
- package/skills/hr-diagnosing-bugs/NOTICE.md +45 -0
- package/skills/hr-diagnosing-bugs/SKILL.md +108 -0
- package/skills/hr-diagnosing-bugs/agents/openai.yaml +3 -0
- package/skills/hr-diagnosing-bugs/references/reporting.md +72 -0
- package/skills/hr-explain-code/NOTICE.md +37 -0
- package/skills/hr-explain-code/SKILL.md +110 -0
- package/skills/hr-explain-code/agents/openai.yaml +5 -0
- package/skills/hr-explain-code/references/helper-brief.md +39 -0
- package/skills/hr-extract-shared-steps/SKILL.md +134 -0
- package/skills/hr-extract-shared-steps/agents/openai.yaml +3 -0
- package/skills/hr-handoff/SKILL.md +91 -0
- package/skills/hr-handoff/agents/openai.yaml +5 -0
- package/skills/hr-handoff/assets/ledger.example.json +10 -0
- package/skills/hr-handoff/assets/receipt.example.json +76 -0
- package/skills/hr-handoff/assets/source.example.json +20 -0
- package/skills/hr-handoff/references/reconciliation.md +105 -0
- package/skills/hr-handoff/scripts/check-reconciliation.mjs +282 -0
- package/skills/hr-house-rules-setup/SKILL.md +100 -0
- package/skills/hr-house-rules-setup/agents/openai.yaml +5 -0
- package/skills/hr-issue-tracker-setup/SKILL.md +49 -0
- package/skills/hr-issue-tracker-setup/agents/openai.yaml +5 -0
- package/skills/hr-lean-plan/SKILL.md +142 -0
- package/skills/hr-lean-plan/agents/openai.yaml +5 -0
- package/skills/hr-maintainability-review/SKILL.md +176 -0
- package/skills/hr-maintainability-review/agents/openai.yaml +5 -0
- package/skills/hr-manual-qa/NOTICE.md +36 -0
- package/skills/hr-manual-qa/SKILL.md +37 -0
- package/skills/hr-manual-qa/agents/openai.yaml +3 -0
- package/skills/hr-navigation-retro/LICENSE +21 -0
- package/skills/hr-navigation-retro/NOTICE.md +5 -0
- package/skills/hr-navigation-retro/SKILL.md +86 -0
- package/skills/hr-navigation-retro/agents/openai.yaml +4 -0
- package/skills/hr-navigation-retro/references/inputs.md +67 -0
- package/skills/hr-navigation-retro/scripts/retro.py +552 -0
- package/skills/hr-navigation-retro/scripts/transcripts.py +205 -0
- package/skills/hr-ordering-tests/SKILL.md +51 -0
- package/skills/hr-ordering-tests/agents/openai.yaml +2 -0
- package/skills/hr-plain-prose/SKILL.md +261 -0
- package/skills/hr-plain-prose/agents/openai.yaml +3 -0
- package/skills/hr-plain-prose/scripts/check.mjs +331 -0
- package/skills/hr-pr-followup/LICENSE +21 -0
- package/skills/hr-pr-followup/NOTICE.md +9 -0
- package/skills/hr-pr-followup/SKILL.md +71 -0
- package/skills/hr-pr-followup/agents/openai.yaml +2 -0
- package/skills/hr-pr-followup/references/review-helpers.md +90 -0
- package/skills/hr-pr-followup/scripts/check-pr-review.ts +510 -0
- package/skills/hr-pr-followup/scripts/resolve-pr-thread.ts +219 -0
- package/skills/hr-progress-report/SKILL.md +49 -0
- package/skills/hr-progress-report/agents/openai.yaml +5 -0
- package/skills/hr-read-reddit/SKILL.md +44 -0
- package/skills/hr-read-reddit/agents/openai.yaml +2 -0
- package/skills/hr-read-reddit/scripts/reddit.ts +252 -0
- package/skills/hr-read-x-links/SKILL.md +42 -0
- package/skills/hr-read-x-links/agents/openai.yaml +2 -0
- package/skills/hr-read-x-links/scripts/x-post.ts +264 -0
- package/skills/hr-split-to-prs/LICENSE +21 -0
- package/skills/hr-split-to-prs/NOTICE.md +9 -0
- package/skills/hr-split-to-prs/SKILL.md +61 -0
- package/skills/hr-split-to-prs/agents/openai.yaml +2 -0
- package/skills/hr-stock-ui-audit/SKILL.md +132 -0
- package/skills/hr-stock-ui-audit/agents/openai.yaml +3 -0
- package/skills/hr-stock-ui-audit/scripts/scan.mjs +619 -0
- package/skills/hr-tdd/LICENSE +21 -0
- package/skills/hr-tdd/NOTICE.md +10 -0
- package/skills/hr-tdd/SKILL.md +40 -0
- package/skills/hr-tdd/agents/openai.yaml +3 -0
- package/skills/hr-tdd/mocking.md +39 -0
- package/skills/hr-tdd/tests.md +77 -0
- package/skills/hr-test-audit/SKILL.md +146 -0
- package/skills/hr-test-audit/agents/openai.yaml +3 -0
- package/skills/hr-test-audit/scripts/floor-guard.ts +137 -0
- package/skills/hr-what-next/SKILL.md +61 -0
- package/skills/hr-what-next/agents/openai.yaml +4 -0
- package/skills/hr-what-next/references/reporting.md +68 -0
- package/skills/hr-writing-for-agents/NOTICE.md +46 -0
- package/skills/hr-writing-for-agents/SKILL-MECHANICS.md +83 -0
- package/skills/hr-writing-for-agents/SKILL.md +108 -0
- package/skills/hr-writing-for-agents/agents/openai.yaml +3 -0
- package/skills/hr-writing-pr/NOTICE.md +48 -0
- package/skills/hr-writing-pr/SKILL.md +104 -0
- 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.
|