@bompus/house-rules 0.0.0-stage → 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.
- package/CODE_OF_CONDUCT.md +83 -0
- package/CONTRIBUTING.md +54 -0
- package/LICENSE +21 -0
- package/README.md +378 -2
- package/THIRD_PARTY_NOTICES.md +188 -0
- package/compose.mjs +125 -0
- package/composition.mjs +361 -0
- package/config-view.mjs +209 -0
- package/config.mjs +381 -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 +269 -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 +42 -4
- package/rule-references.mjs +91 -0
- package/rules/core.md +340 -0
- package/rules/modifiers/backlog-outline.md +25 -0
- package/rules/modifiers/backlog-visual.md +16 -0
- package/rules/modifiers/coded-offers.md +70 -0
- package/rules/modifiers/cross-session-relay.md +23 -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 +20 -0
- package/rules/modifiers/model-default-questions.md +33 -0
- package/rules/modifiers/multi-agent.md +38 -0
- package/rules/modifiers/no-attribution.md +16 -0
- package/rules/modifiers/periodic-updates.md +25 -0
- package/rules/modifiers/plan-files.md +82 -0
- package/rules/modifiers/question-cards.md +48 -0
- package/rules/modifiers/release-batching.md +15 -0
- package/rules/modifiers/scratch-on-disk.md +15 -0
- package/rules/modifiers/shared-host-load.md +19 -0
- package/rules/modifiers/solo-operator.md +13 -0
- package/rules/modifiers/squash-landing.md +22 -0
- package/rules/modifiers/upstream-contributions.md +45 -0
- package/rules/modifiers/web-image-formats.md +35 -0
- package/rules/references/backlog-view.md +154 -0
- package/rules/references/github-actions.md +45 -0
- package/rules/references/landing.md +39 -0
- package/rules/references/multi-agent.md +51 -0
- package/rules/references/release-batching.md +66 -0
- package/rules/references/squash-landing.md +50 -0
- package/rules/references/thread-visuals.md +45 -0
- package/setup.mjs +445 -0
- package/skills/hr-agent-guidance-audit/LICENSE +21 -0
- package/skills/hr-agent-guidance-audit/SKILL.md +91 -0
- package/skills/hr-agent-guidance-audit/agents/openai.yaml +2 -0
- package/skills/hr-agent-guidance-audit/references/prune-workflow.md +72 -0
- package/skills/hr-agent-guidance-audit/references/records-and-lessons.md +60 -0
- package/skills/hr-agent-guidance-audit/references/retirement-verdicts.md +49 -0
- package/skills/hr-agent-guidance-refresh/LICENSE +21 -0
- package/skills/hr-agent-guidance-refresh/SKILL.md +36 -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 +279 -0
- package/skills/hr-benchmarking/agents/openai.yaml +2 -0
- package/skills/hr-benchmarking/references/javascript.md +130 -0
- package/skills/hr-benchmarking/references/tools.md +165 -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 +102 -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-code-review/LICENSE +21 -0
- package/skills/hr-code-review/NOTICE.md +26 -0
- package/skills/hr-code-review/SKILL.md +163 -0
- package/skills/hr-code-review/agents/openai.yaml +3 -0
- package/skills/hr-code-review/references/acp-client.md +43 -0
- package/skills/hr-code-review/references/evidence.md +57 -0
- package/skills/hr-code-review/references/impact.md +103 -0
- package/skills/hr-code-review/references/panel-adjudication.md +58 -0
- package/skills/hr-code-review/references/panel-plan.md +61 -0
- package/skills/hr-code-review/references/panel-recommendations.json +105 -0
- package/skills/hr-code-review/references/panel-recommendations.md +46 -0
- package/skills/hr-code-review/references/panel-setup.md +54 -0
- package/skills/hr-code-review/references/reviewer-role.md +31 -0
- package/skills/hr-code-review/scripts/acp-panel-client.mjs +299 -0
- package/skills/hr-code-review/scripts/check-receipts.mjs +263 -0
- package/skills/hr-code-review/scripts/panel-plan.mjs +69 -0
- package/skills/hr-code-review/scripts/panel-preferences.mjs +220 -0
- package/skills/hr-design-exploration/SKILL.md +105 -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 +97 -0
- package/skills/hr-diagnosing-bugs/scripts/check-pr-offer.mjs +47 -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-forgotten-work-audit/SKILL.md +130 -0
- package/skills/hr-forgotten-work-audit/references/brief-template.md +56 -0
- package/skills/hr-forgotten-work-audit/references/result-format.md +46 -0
- package/skills/hr-handoff/LICENSE +21 -0
- package/skills/hr-handoff/NOTICE.md +29 -0
- package/skills/hr-handoff/SKILL.md +114 -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 +124 -0
- package/skills/hr-handoff/references/successor-thread.md +76 -0
- package/skills/hr-handoff/scripts/check-reconciliation.mjs +324 -0
- package/skills/hr-house-rules-setup/SKILL.md +114 -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 +146 -0
- package/skills/hr-lean-plan/agents/openai.yaml +5 -0
- package/skills/hr-maintainability-review/SKILL.md +186 -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 +264 -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 +74 -0
- package/skills/hr-pr-followup/agents/openai.yaml +2 -0
- package/skills/hr-pr-followup/references/review-helpers.md +111 -0
- package/skills/hr-pr-followup/scripts/check-landing.py +204 -0
- package/skills/hr-pr-followup/scripts/check-pr-review.ts +510 -0
- package/skills/hr-pr-followup/scripts/merge-pr.sh +100 -0
- package/skills/hr-pr-followup/scripts/resolve-pr-thread.ts +219 -0
- package/skills/hr-pr-followup/scripts/verify-landed.sh +184 -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-research-shared-links/SKILL.md +103 -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-sqlite/SKILL.md +174 -0
- package/skills/hr-sqlite/agents/openai.yaml +2 -0
- package/skills/hr-sqlite/references/evidence.md +94 -0
- package/skills/hr-sqlite/references/tool-decisions.md +39 -0
- package/skills/hr-sqlite/scripts/inspect-sqlite.py +245 -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/LICENSE +21 -0
- package/skills/hr-test-audit/NOTICE.md +67 -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-usage-report/SKILL.md +90 -0
- package/skills/hr-usage-report/agents/openai.yaml +2 -0
- package/skills/hr-usage-report/assets/example-report.json +125 -0
- package/skills/hr-usage-report/assets/report-template.html +377 -0
- package/skills/hr-usage-report/scripts/render-report.ts +86 -0
- package/skills/hr-usage-report/scripts/usage-by-model.ts +499 -0
- package/skills/hr-what-next/SKILL.md +151 -0
- package/skills/hr-what-next/agents/openai.yaml +4 -0
- package/skills/hr-what-next/references/reporting.md +59 -0
- package/skills/hr-what-next/scripts/check-open-work.mjs +711 -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 +119 -0
- package/skills/hr-writing-pr/agents/openai.yaml +2 -0
- package/skills/hr-writing-pr/scripts/benefit-chart.py +200 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Commits, pull requests and comments carry no agent or tool credit lines unless the target repository asks for a disclosure.
|
|
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.
|
|
11
|
+
|
|
12
|
+
When the target repository's contribution guidelines or pull request template
|
|
13
|
+
ask for agent or model disclosure, give exactly what they ask for, where they
|
|
14
|
+
ask for it, and nothing beyond it. If models are asked for, name each that did
|
|
15
|
+
the work; one in a higher published tier of the same provider that reviewed or
|
|
16
|
+
advised goes first (Opus reviewing Sonnet: Opus, Sonnet); else in work order.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A job expected to run longer than about 10 minutes posts a short status update every 5 minutes by default, with progress, an ETA with its basis or "unmeasured", and findings so far, until the job ends; a watcher event that changes nothing gets at most one line.
|
|
3
|
+
after: Reporting
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Periodic status updates
|
|
7
|
+
|
|
8
|
+
A job expected to run longer than about 10 minutes gets a status update on its
|
|
9
|
+
own schedule, without the user asking. So does a job that has run that long with
|
|
10
|
+
no estimate. This covers a build, test suite, benchmark, CI run, long search or
|
|
11
|
+
similar. The default interval is 5 minutes. That figure is a default, not a
|
|
12
|
+
measured value; use the interval the user names instead.
|
|
13
|
+
|
|
14
|
+
Each update is one short line, not a report, posted even when nothing has
|
|
15
|
+
changed. It gives completed/total or a percent (the current step when the job
|
|
16
|
+
reports no total), the ETA with its basis or the word "unmeasured", and a
|
|
17
|
+
one-line summary of findings so far. A milestone, failure, stall or change in
|
|
18
|
+
the forecast goes in full instead.
|
|
19
|
+
|
|
20
|
+
Where the host can run a background watcher or timer, arm it to post the
|
|
21
|
+
updates and to report in full only a milestone, failure, stall, forecast change
|
|
22
|
+
or the run's completion. A watcher event that changes nothing gets at most one
|
|
23
|
+
line. Otherwise post at the first natural checkpoint after each interval has
|
|
24
|
+
passed, when a step finishes or a tool call returns. Stop the updates when the
|
|
25
|
+
job ends; the final report replaces them.
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
+
requires: hr-handoff, hr-what-next
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Task tracking
|
|
8
|
+
|
|
9
|
+
For work with two or more steps, create the task list up front, keep exactly
|
|
10
|
+
one item in progress and mark each item done as it finishes. When no task tool
|
|
11
|
+
is available, keep the list in short progress messages and say so once.
|
|
12
|
+
|
|
13
|
+
Mirror the list to a plan file: the project's plans directory when it documents
|
|
14
|
+
one, otherwise `plans/<topic>/plan.md` in your notes directory (§ Durable
|
|
15
|
+
notes). At session start, read the relevant plans and every `blocked-on-user`
|
|
16
|
+
plan whatever its owner, so unanswered decisions stay visible; that read is not
|
|
17
|
+
the sweep below. Update the plan when you update the list, add findings as they
|
|
18
|
+
turn up, and use the same item states in both. At each reconciliation event in
|
|
19
|
+
§ Finishing work, update both records before choosing the next action. Point at
|
|
20
|
+
the plan or handoff that owns an item instead of copying it; a handoff points
|
|
21
|
+
at its plan.
|
|
22
|
+
|
|
23
|
+
When you rebuild a ledger or inventory from an earlier one, carry
|
|
24
|
+
each open or deferred line over as an item, marked done with its outcome
|
|
25
|
+
when it has closed. Several lines may share one item only when the same next
|
|
26
|
+
action and completion evidence satisfy every line. A summary row such as "the
|
|
27
|
+
rest, reopen only if asked" loses them. The `hr-handoff` skill's `scripts/check-reconciliation.mjs` checks that
|
|
28
|
+
every such line maps to an item when the earlier plan is named as a source; it
|
|
29
|
+
does not judge the outcome.
|
|
30
|
+
|
|
31
|
+
- Head the plan with `Owner:` (session name, or `none` for a shared backlog)
|
|
32
|
+
and `Status:` (`active`, `paused`, `blocked-on-user`, `completed`); update both
|
|
33
|
+
when they change. Add `Purpose:` with the session's purpose in one sentence
|
|
34
|
+
(§ Session purpose).
|
|
35
|
+
- For substantial plans, state the intended outcome and the evidence that will
|
|
36
|
+
show it is done; update both when findings change the task.
|
|
37
|
+
- When new work arrives mid-task, add it as pending before switching; never
|
|
38
|
+
drop an in-progress item silently.
|
|
39
|
+
- Keep the whole ledger in the plan: deferred items, follow-ups and incidental
|
|
40
|
+
findings with a one-line reason (`user-flagged`, `deferred-by`,
|
|
41
|
+
`blocked-by`, `low priority`), and closed items with their outcome (landed
|
|
42
|
+
commit, won't do and why, moved elsewhere) and start and end times. Note the
|
|
43
|
+
start time when you pick an item up.
|
|
44
|
+
- When repeated attempts leave an item unresolved without new evidence, record
|
|
45
|
+
whether it is blocked, deferred or using an approach that is not working. For
|
|
46
|
+
an approach that is not working, change method within the authorized scope,
|
|
47
|
+
or propose a smaller deliverable or dropping the item; the user decides scope
|
|
48
|
+
changes and drops. Judge progress by evidence, not age or retry counts;
|
|
49
|
+
waiting on a dependency or ruling out a hypothesis does not by itself show
|
|
50
|
+
that an approach is not working.
|
|
51
|
+
- Keep the ledger as a `## Ledger` section of item lines a script can read:
|
|
52
|
+
`- [ ] text` is open, `- [~] text … trigger: <what reopens it>` deferred,
|
|
53
|
+
`- [x] text … evidence: <result>` done and `- [-] text … by: <who dropped it>`
|
|
54
|
+
dropped (`by: user, not selected` for an option the user passed over). Name
|
|
55
|
+
each scratch directory, checkout and branch you own in an item. Write each
|
|
56
|
+
follow-up as an item, not as a sentence elsewhere in the plan.
|
|
57
|
+
- An item that waits on another thread (an upstream issue or pull request, a
|
|
58
|
+
maintainer, another session) carries `recheck: YYYY-MM-DD`, because a
|
|
59
|
+
trigger such as "maintainer replies" does not fire by itself. A question you
|
|
60
|
+
send to another thread is an open item that names where the reply will
|
|
61
|
+
arrive and carries a `recheck:` date. On that date, look at the thread,
|
|
62
|
+
record what you found, and set a new date or close the item.
|
|
63
|
+
- Before claiming that nothing remains or the session can close, and before
|
|
64
|
+
archiving a plan, run the `hr-what-next` skill's
|
|
65
|
+
`scripts/check-open-work.mjs <plan>`, adding `--checkout <path>` for each
|
|
66
|
+
checkout you touched and `--repo <owner/repo>` when items name pull requests
|
|
67
|
+
or issues by number alone, and quote its result. Open or deferred items, and owned
|
|
68
|
+
resources no open item names, mean work remains. Check each item it lists as
|
|
69
|
+
possibly finished or due for a re-check, and update its line.
|
|
70
|
+
- Before archiving a completed plan, save its completed status, completion
|
|
71
|
+
time and evidence. Apply § Finishing work before marking the whole session
|
|
72
|
+
completed. Then archive with the same script's `--archive` flag; it moves the
|
|
73
|
+
plan to `plans/archive/<topic>-<date>/` beside it only when the status is
|
|
74
|
+
completed and nothing is open. A plan whose status is `active`, `paused` or
|
|
75
|
+
`blocked-on-user` stays where the session-start read finds it.
|
|
76
|
+
|
|
77
|
+
Sweep other sessions' plans and handoffs only when the user asks, such as
|
|
78
|
+
"what's waiting on me?", and only for the current project. Offer unowned items,
|
|
79
|
+
`blocked-on-user` items and items whose owner has no live session in the host's
|
|
80
|
+
session list or coordination roster, naming each owner. When you cannot tell
|
|
81
|
+
whether an owner is live, or who owns an item, mention it as another session's
|
|
82
|
+
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,15 @@
|
|
|
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 and changelog audit. Run the accuracy audit on every public
|
|
13
|
+
repository's version bump and the changelog audit on every version bump, before
|
|
14
|
+
the first publish step, and land their corrections first. Do not publish with
|
|
15
|
+
unresolved accuracy blockers or expand scope 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,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: On a shared machine, follow its resource budgets; without one, get operator direction before parallel workers or whole-repository commands, and use memory controls.
|
|
3
|
+
after: Coordination and isolation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Shared machine load
|
|
7
|
+
|
|
8
|
+
When local work shares a host, follow its declared resource budgets. A phase is
|
|
9
|
+
resource-intensive when its expected CPU, memory or I/O demand exceeds the
|
|
10
|
+
host's budget for concurrent work. Before such a phase, check current load and
|
|
11
|
+
running jobs. Without a budget, get operator direction before launching
|
|
12
|
+
parallel local workers or commands that build, test, index or process an
|
|
13
|
+
entire repository or dataset; bounded reads and edits may continue.
|
|
14
|
+
|
|
15
|
+
Work risks exhausting memory when its expected or last measured peak leaves
|
|
16
|
+
little headroom in the memory available to it, or when its peak is unknown and
|
|
17
|
+
its input is large. Constrain such work using the host's supported controls.
|
|
18
|
+
Retry with a larger budget only when host evidence shows memory pressure caused
|
|
19
|
+
the failure; without that evidence, find the cause before raising the 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, stop and record its owner.
|
|
22
|
+
Update the task record and follow § Cleanup after each landing.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A measured optimization, fix or defect found in a third-party project is offered for submission to that project through its own contribution route.
|
|
3
|
+
after: Repository work
|
|
4
|
+
requires: hr-benchmarking, hr-writing-pr
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Upstream contributions
|
|
8
|
+
|
|
9
|
+
When work on a third-party project produces a finding that is worth a
|
|
10
|
+
maintainer's time, offer to submit it to that project rather than leaving it in
|
|
11
|
+
a local branch or a note. It qualifies when you reproduced or measured the
|
|
12
|
+
effect and it matches a kind of change the project's contribution guide or open
|
|
13
|
+
issues invite, such as performance fixes or a reported defect.
|
|
14
|
+
|
|
15
|
+
1. Offer the submission under § Offers as soon as the evidence is complete.
|
|
16
|
+
Name the channel and the scope.
|
|
17
|
+
2. Pick the channel from the project's contribution guide: a comment on an
|
|
18
|
+
existing matching issue, a new issue, a discussion for proposals, or a pull
|
|
19
|
+
request. A behavior change, or a project that asks for prior approval, starts
|
|
20
|
+
with a comment or discussion, not a pull request. Count the underlying
|
|
21
|
+
problems and split the submission when the guide asks for one per request.
|
|
22
|
+
3. Meet § Repository work first: the search for existing reports, the review of
|
|
23
|
+
the diff, the relevant checks, and the project's template and disclosure ask.
|
|
24
|
+
4. Show the user the exact text and channel once before posting. Posting is
|
|
25
|
+
public and cannot be undone; this rule makes submitting the expected next
|
|
26
|
+
step, not a waiver of that look. Only a user instruction naming the kind of
|
|
27
|
+
submission and the projects, such as "post issue comments on project X
|
|
28
|
+
without asking", removes it.
|
|
29
|
+
5. Title a performance discussion or issue with its headline result and the
|
|
30
|
+
workload it holds for, such as "saving a file takes 1.1 s with 500
|
|
31
|
+
open tabs, 0.17 s with the fix". Use a figure only when it clears the
|
|
32
|
+
`hr-benchmarking` bar (outside the declared variation criterion,
|
|
33
|
+
repetitions stated) and keep the caveats in the body. Title a defect by what
|
|
34
|
+
the person sees, not by the code involved, and add how often only when the
|
|
35
|
+
evidence supports a rate. Open the body with the same headline. A qualified
|
|
36
|
+
measured result also gets a chart of it (`hr-writing-pr`). A pull request keeps
|
|
37
|
+
the project's title convention; its opening body sentence carries the figure
|
|
38
|
+
(`hr-writing-pr`).
|
|
39
|
+
6. When a later measurement or review changes the headline, edit the title and
|
|
40
|
+
opening lines of your own submission to match, and say in a comment what
|
|
41
|
+
changed. A submission that buries its benefit under background gets rewritten,
|
|
42
|
+
not left.
|
|
43
|
+
|
|
44
|
+
A finding outside the session's purpose stays parked under § Session purpose
|
|
45
|
+
until the user opens it.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Prefer WebP for web raster images when it saves bytes at acceptable quality, with format exceptions and delivered-file checks.
|
|
3
|
+
after: Writing
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Web image formats
|
|
7
|
+
|
|
8
|
+
When creating, importing or replacing raster images a web project controls,
|
|
9
|
+
prefer WebP when its target browsers and publishing pipeline support it.
|
|
10
|
+
Compare files at the required dimensions and acceptable visual quality; use
|
|
11
|
+
WebP when it reduces bytes while preserving required detail, transparency and
|
|
12
|
+
animation. Convert existing assets only within the selected task's scope.
|
|
13
|
+
|
|
14
|
+
WebP supports lossy and lossless compression and transparency, with broad
|
|
15
|
+
browser support. Smaller files reduce data transfer and can shorten image
|
|
16
|
+
downloads. Page rendering also depends on discovery, layout and rendering
|
|
17
|
+
work; measure page timing separately before claiming a speed gain.
|
|
18
|
+
|
|
19
|
+
Keep SVG for suitable vector artwork. Use PNG or lossless WebP when exact
|
|
20
|
+
pixels or sharp text require it. Choose another supported format, including
|
|
21
|
+
AVIF, when a size/quality comparison or required consumer favors it. Preserve
|
|
22
|
+
fallbacks that supported clients or integrations require. Keep externally
|
|
23
|
+
hosted images in their provider's permitted delivery format; this preference
|
|
24
|
+
does not authorize downloading, transcoding or rehosting them.
|
|
25
|
+
|
|
26
|
+
Preserve editing sources when needed, attribution, alt text, intended crop,
|
|
27
|
+
dimensions and responsive sources. Compare the actual derivatives delivered
|
|
28
|
+
by the publishing system, whose encoder settings may differ from a local
|
|
29
|
+
preview. Verify image responses, MIME types and appearance at the relevant
|
|
30
|
+
viewports. A WebP filename alone establishes neither correct encoding nor
|
|
31
|
+
smaller delivery. Format and quality selection require judgment; this
|
|
32
|
+
preference has no automatic enforcement check.
|
|
33
|
+
|
|
34
|
+
References: [WebP overview](https://developers.google.com/speed/webp) and
|
|
35
|
+
[MDN image formats](https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Image_types).
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
## Backlog view
|
|
2
|
+
|
|
3
|
+
Whenever any item remains in a backlog, remaining-work or walk-through report,
|
|
4
|
+
show one panel of every open item beside the table, not only when the user asks
|
|
5
|
+
to see the backlog. Group the items by what each waits on and order the groups
|
|
6
|
+
bottom-up, so the items that can move sit last, next to the offer:
|
|
7
|
+
|
|
8
|
+
1. **Waiting on others or a date**, with its count and "not work to start yet".
|
|
9
|
+
A table with Trigger, Item and Owner columns, in date order with undated
|
|
10
|
+
events last. A long path or list goes on a second line under its item.
|
|
11
|
+
Never start these items or offer them.
|
|
12
|
+
2. **Needs your decision**, with its count. One bordered row per question: a Q
|
|
13
|
+
badge carrying the offer's question number, the item, a muted second line
|
|
14
|
+
with its status and owner, and answer chips on the right: the question's own
|
|
15
|
+
option codes when the offer uses codes (`1A`, `1B`), otherwise yes, no and
|
|
16
|
+
defer. The chips repeat the offer's choices; they are not controls and are
|
|
17
|
+
never a second set of reply labels. Mark the group being
|
|
18
|
+
asked "group N of M, this reply" in the header, tinted, with an accent rail
|
|
19
|
+
beside its rows. Put that group last, with its highest-ranked question last
|
|
20
|
+
within it.
|
|
21
|
+
3. **Actionable now**, with its count. Keep the group when it is empty: write
|
|
22
|
+
"Nothing." and the reason.
|
|
23
|
+
|
|
24
|
+
The panel has a fixed dark background (`#12151c`) with text `#e6e8ee` and muted
|
|
25
|
+
text `#98a1b5` (7.0:1 on the panel). Triggers are `#8fb4ff`; the current group
|
|
26
|
+
and Q badges use `#ffd479`, with dark text on the badge. Group names, counts,
|
|
27
|
+
Q numbers and the words "this reply" carry the meaning, not color alone. Below
|
|
28
|
+
about 520 px wide it becomes one column: hide the column headings and stack
|
|
29
|
+
trigger, item and owner. Render it with the host's own preview or rendering
|
|
30
|
+
tool, and check it at desktop and phone widths when the tool allows. Build it
|
|
31
|
+
from this skeleton, with the report's own items:
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<div class="w">
|
|
35
|
+
<section>
|
|
36
|
+
<h4>1. Waiting on others or a date · 2 <small>not work to start yet</small></h4>
|
|
37
|
+
<div class="cols"><span>Trigger</span><span>Item</span><span>Owner</span></div>
|
|
38
|
+
<div class="r">
|
|
39
|
+
<span class="d">Oct 14</span><span>Vendor replies to the support ticket</span
|
|
40
|
+
><span class="mu">vendor</span>
|
|
41
|
+
</div>
|
|
42
|
+
</section>
|
|
43
|
+
<section class="cur">
|
|
44
|
+
<h4>2. Needs your decision · 1 <small>group 1 of 1, this reply</small></h4>
|
|
45
|
+
<div class="dq">
|
|
46
|
+
<span class="q">Q1</span>
|
|
47
|
+
<span class="t">Drop the unused cache layer?<span class="m">parked · web app</span></span>
|
|
48
|
+
<span class="a"><span>yes</span><span>no</span><span>defer</span></span>
|
|
49
|
+
</div>
|
|
50
|
+
</section>
|
|
51
|
+
<section>
|
|
52
|
+
<h4>3. Actionable now · 0</h4>
|
|
53
|
+
<div class="none">Nothing. Every other open item waits on a date or someone else.</div>
|
|
54
|
+
</section>
|
|
55
|
+
</div>
|
|
56
|
+
<style>
|
|
57
|
+
.w {
|
|
58
|
+
background: #12151c;
|
|
59
|
+
color: #e6e8ee;
|
|
60
|
+
border-radius: 10px;
|
|
61
|
+
padding: 16px;
|
|
62
|
+
font:
|
|
63
|
+
13px/1.45 system-ui,
|
|
64
|
+
sans-serif;
|
|
65
|
+
}
|
|
66
|
+
.w section {
|
|
67
|
+
margin: 0 0 14px;
|
|
68
|
+
}
|
|
69
|
+
.w section:last-child {
|
|
70
|
+
margin: 0;
|
|
71
|
+
}
|
|
72
|
+
.w h4 {
|
|
73
|
+
margin: 0 0 6px;
|
|
74
|
+
padding: 5px 10px;
|
|
75
|
+
background: #181c27;
|
|
76
|
+
border-radius: 6px;
|
|
77
|
+
color: #c9d1e3;
|
|
78
|
+
display: flex;
|
|
79
|
+
justify-content: space-between;
|
|
80
|
+
}
|
|
81
|
+
.w small,
|
|
82
|
+
.mu,
|
|
83
|
+
.m {
|
|
84
|
+
color: #98a1b5;
|
|
85
|
+
font-weight: 400;
|
|
86
|
+
}
|
|
87
|
+
.cols,
|
|
88
|
+
.r {
|
|
89
|
+
display: grid;
|
|
90
|
+
grid-template-columns: 132px 1fr 168px;
|
|
91
|
+
gap: 10px;
|
|
92
|
+
padding: 6px 10px;
|
|
93
|
+
border-bottom: 1px solid #1c2130;
|
|
94
|
+
}
|
|
95
|
+
.cols {
|
|
96
|
+
color: #98a1b5;
|
|
97
|
+
font-size: 12px;
|
|
98
|
+
}
|
|
99
|
+
.d {
|
|
100
|
+
color: #8fb4ff;
|
|
101
|
+
}
|
|
102
|
+
.none {
|
|
103
|
+
padding: 6px 10px;
|
|
104
|
+
color: #98a1b5;
|
|
105
|
+
}
|
|
106
|
+
.cur h4 {
|
|
107
|
+
background: #2a2410;
|
|
108
|
+
color: #ffd479;
|
|
109
|
+
box-shadow: inset 3px 0 0 #ffd479;
|
|
110
|
+
}
|
|
111
|
+
.dq {
|
|
112
|
+
display: grid;
|
|
113
|
+
grid-template-columns: 34px 1fr auto;
|
|
114
|
+
gap: 8px;
|
|
115
|
+
border: 1px solid #ffd479;
|
|
116
|
+
border-radius: 8px;
|
|
117
|
+
padding: 7px 10px;
|
|
118
|
+
margin: 8px 0;
|
|
119
|
+
}
|
|
120
|
+
.q {
|
|
121
|
+
background: #ffd479;
|
|
122
|
+
color: #12151c;
|
|
123
|
+
border-radius: 4px;
|
|
124
|
+
font-weight: 700;
|
|
125
|
+
text-align: center;
|
|
126
|
+
align-self: start;
|
|
127
|
+
}
|
|
128
|
+
.m {
|
|
129
|
+
display: block;
|
|
130
|
+
font-size: 12px;
|
|
131
|
+
}
|
|
132
|
+
.a span {
|
|
133
|
+
border: 1px solid #2a3040;
|
|
134
|
+
border-radius: 5px;
|
|
135
|
+
padding: 0 7px;
|
|
136
|
+
margin-left: 4px;
|
|
137
|
+
}
|
|
138
|
+
@media (max-width: 520px) {
|
|
139
|
+
.cols {
|
|
140
|
+
display: none;
|
|
141
|
+
}
|
|
142
|
+
.r {
|
|
143
|
+
grid-template-columns: 1fr;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
</style>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Where the host has no render tool, give the same groups as a Markdown outline:
|
|
150
|
+
numbered group headings with counts, one bullet per item with its trigger in
|
|
151
|
+
bold first and its owner last, Q labels in bold with the item and its status,
|
|
152
|
+
"Nothing." and the reason for an empty actionable group, and "▶ group N of M,
|
|
153
|
+
this reply" on the group being asked. The offer keeps its own format; the view
|
|
154
|
+
adds no offer.
|
|
@@ -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 or uncommitted task changes get one landing option, `Land PR #<n>` or `Commit and land <change>`, never a bare done; only an explicit user deferral (recorded with branch, commits and reason) leaves it out. The option covers this section and § Cleanup, merge included; name only departures from that. Land through the repository's required path without bypassing checks. Landing is done when a fresh fetch shows the change in the default branch.
|
|
11
|
+
|
|
12
|
+
Leave alone a checkout another
|
|
13
|
+
session or job uses, or whose use you cannot tell. Never merge, reset, stash or
|
|
14
|
+
switch it to make it match the default.
|
|
15
|
+
|
|
16
|
+
After integration:
|
|
17
|
+
|
|
18
|
+
- Fetch, then bring the local default branch current. When it is clean,
|
|
19
|
+
strictly behind and not checked out elsewhere, fast-forward it. When another
|
|
20
|
+
worktree has it checked out and you know no session or running job is using
|
|
21
|
+
that worktree (your own main checkout, for example), run
|
|
22
|
+
`git merge --ff-only <sha>` there with the remote head you just fetched and
|
|
23
|
+
verified; unrelated uncommitted files may stay. Avoid `git pull` there: a
|
|
24
|
+
fetch by another process can rewrite the shared `FETCH_HEAD` mid-pull and
|
|
25
|
+
fail it with "Cannot fast-forward to multiple branches". When you cannot
|
|
26
|
+
tell, treat it as in use. Confirm the local and fetched remote heads match.
|
|
27
|
+
- If the default branch is diverged, on another branch, in use, or the merge
|
|
28
|
+
refuses because local edits would be overwritten, leave it and report its
|
|
29
|
+
path and the blocker. Never merge, reset, stash or switch branches to make it
|
|
30
|
+
match, and never update other sessions' worktrees or separate clones.
|
|
31
|
+
- Delete the merged remote branch when it is this task's own branch
|
|
32
|
+
(`git push origin --delete <branch>` when the merge did not); § Cleanup
|
|
33
|
+
covers branches others may rely on. Before merging a pull request that another open pull
|
|
34
|
+
request targets, retarget that one to the default branch first.
|
|
35
|
+
- When the change landed by squash, verify the pull request's recorded squash
|
|
36
|
+
commit is in the fetched default branch and the intended changes landed; the
|
|
37
|
+
original feature commits need not be ancestors.
|
|
38
|
+
|
|
39
|
+
Before the first publish step of a version bump (tag, publish, release, announcement), review unreleased changelog entries and public materials (READMEs, charts, graphics with alt text, listing text, announcement) and fix what is stale first; an urgent release may limit only the materials to what it affects.
|
|
@@ -0,0 +1,51 @@
|
|
|
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, treat each finding as a claim. Fix it when a reproduced
|
|
24
|
+
failure (a test that fails before the fix, where one fits) or a cited
|
|
25
|
+
requirement confirms it, with the smallest change that clears it; a reviewer's
|
|
26
|
+
proposed remedy is a suggestion. Answer an unconfirmed finding with the reason.
|
|
27
|
+
Run the relevant checks. A fix that changes code logic permits a follow-up
|
|
28
|
+
review; it does not require one.
|
|
29
|
+
Code logic includes control flow, data handling, interfaces, queries and values
|
|
30
|
+
a program reads. Request a follow-up only for a named remaining risk that
|
|
31
|
+
local checks cannot resolve. Batch known fixes first, then focus the review on
|
|
32
|
+
changed logic and unresolved findings. Never restart a whole-change review
|
|
33
|
+
solely because a fix changed logic.
|
|
34
|
+
|
|
35
|
+
Before a follow-up, record its scope and round limit in the plan. A further
|
|
36
|
+
logic fix does not reset that limit. When the limit is reached, report any
|
|
37
|
+
remaining blocker and get the user's direction before another model round.
|
|
38
|
+
Fixes that touch only docs, comments, changelog text or tests ship on local
|
|
39
|
+
checks. The pull request body names the findings fixed and says when no
|
|
40
|
+
further round ran. Required repository checks and review gates still apply.
|
|
41
|
+
|
|
42
|
+
Before cleaning up a branch, directory or worktree by hand or on a schedule,
|
|
43
|
+
check that no session of any installed agent host uses it: session records and
|
|
44
|
+
workspace or branch associations as well as processes, including idle, paused,
|
|
45
|
+
disconnected and resumable sessions. Resolve equivalent paths and check
|
|
46
|
+
sessions in child directories before removing a parent. Recheck right before
|
|
47
|
+
deleting; scheduled cleanup skips what it could not verify. When you finish,
|
|
48
|
+
offer an app-managed session's branch to its owner for deletion, unless the
|
|
49
|
+
session is still on it. Before creating a task worktree, check the
|
|
50
|
+
repository's worktree list and report unexplained leftovers; `git worktree
|
|
51
|
+
prune --dry-run` shows stale registrations.
|