@brainervirus/workit-core 1.2.1 → 1.3.1
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/package.json +1 -1
- package/skills/workit-babysit/SKILL.md +20 -26
- package/skills/workit-behavioral-tdd/SKILL.md +0 -5
- package/skills/workit-blast-radius/SKILL.md +0 -5
- package/skills/workit-challenge/SKILL.md +30 -47
- package/skills/workit-debug/SKILL.md +5 -27
- package/skills/workit-deslop/SKILL.md +0 -5
- package/skills/workit-diagram/SKILL.md +0 -5
- package/skills/workit-green-run/SKILL.md +0 -5
- package/skills/workit-handoff/SKILL.md +2 -8
- package/skills/workit-implement/SKILL.md +14 -20
- package/skills/workit-mockup/SKILL.md +0 -5
- package/skills/workit-plan/SKILL.md +30 -63
- package/skills/workit-review/SKILL.md +0 -5
- package/skills/workit-steer/SKILL.md +27 -27
- package/src/core/authority.ts +6 -1
- package/src/core/auto-approval.ts +34 -14
- package/src/core/branch.ts +293 -42
- package/src/core/config-conversion.ts +4 -4
- package/src/core/config-guard.ts +1 -7
- package/src/core/config.ts +1 -1
- package/src/core/cutover.ts +1207 -140
- package/src/core/doctor.ts +155 -82
- package/src/core/external-action-effects.ts +886 -172
- package/src/core/external-action.ts +222 -64
- package/src/core/init.ts +25 -115
- package/src/core/legacy-ownership.ts +47 -0
- package/src/core/methods.ts +65 -52
- package/src/core/policy-resolver.ts +13 -5
- package/src/core/ports/pr-create.ts +23 -15
- package/src/core/pr-create.ts +374 -84
- package/src/core/registration.ts +0 -15
- package/src/core/repo-tools.ts +0 -1
- package/src/core/route-intent.ts +34 -82
- package/src/core/safe-write.ts +66 -1
- package/src/core/setup-state.ts +7 -0
- package/src/core/setup.ts +175 -82
- package/src/core/task-contract.ts +66 -6
- package/src/core/task-engine.ts +47 -2
- package/src/core/task-store.ts +159 -1
- package/src/core/tracker-issues.ts +55 -118
- package/src/core/vcs-config.ts +178 -187
- package/src/core/workspaces.ts +554 -46
- package/src/core.ts +3 -2
- package/src/core/ports/vcs-token-create-urls.ts +0 -4
package/package.json
CHANGED
|
@@ -1,43 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workit-babysit
|
|
3
|
-
description: Use
|
|
3
|
+
description: Use when the user asks to babysit a PR or explicitly opts in to PR follow-up
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Babysit a PR to
|
|
6
|
+
# Babysit a PR to PR-ready
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
PR creation does not start babysitting. `babysit:true` opts into this skill;
|
|
9
|
+
omission means no follow-up. A PR URL by itself is not an instruction to drive
|
|
10
|
+
it. When the user asks to babysit a URL from a route Workit did not enforce,
|
|
11
|
+
help without claiming the Workit route was enforced. Never mutate PR topology
|
|
12
|
+
(no rebase strategy changes, no force-push).
|
|
13
13
|
|
|
14
|
-
## Before method work
|
|
15
|
-
|
|
16
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
17
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
18
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
19
14
|
|
|
20
15
|
## Method
|
|
21
16
|
|
|
22
|
-
1.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
1. Default to drive mode for an explicit babysit request: resolve conflicts,
|
|
18
|
+
address review threads, and get checks green. Watch reports status only;
|
|
19
|
+
threads-only addresses review threads. Ask about mode only when the choice
|
|
20
|
+
materially changes the work.
|
|
21
|
+
2. Work toward PR-ready in order: conflicts → review threads → CI. Keep a brief
|
|
22
|
+
checkpoint when continuity needs it; task progress is optional.
|
|
27
23
|
3. Classify CI before retry: flake (rerun once) vs stale base (verify with
|
|
28
24
|
`git merge-base --is-ancestor` before updating) vs real failure (fix).
|
|
29
25
|
4. Triage bot findings skeptically: reproduce or quote code before acting;
|
|
30
26
|
invalid bots get a reasoned dismissal, never silent ignore.
|
|
31
27
|
5. Batch fixes into one push wave; re-verify green after every push.
|
|
32
|
-
6.
|
|
33
|
-
|
|
28
|
+
6. Stop at PR-ready. A PR creation or babysit request does not authorize merge
|
|
29
|
+
or release. Continue to merge or release only when the user explicitly sets
|
|
30
|
+
that delivery endpoint and host authority allows the action.
|
|
34
31
|
|
|
35
32
|
## Completion
|
|
36
33
|
|
|
37
|
-
PR
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
candidate identity changes: re-record verification and review evidence against
|
|
42
|
-
the merged commit before `task.close`, or the close will report unsatisfied
|
|
43
|
-
requirements.
|
|
34
|
+
Report PR-ready status with evidence for fixes, or a brief blocker report. If
|
|
35
|
+
the user explicitly authorized merge, honor the configured strategy only after
|
|
36
|
+
checks and required approval. After a squash merge, re-record evidence against
|
|
37
|
+
the new base commit before closing tracked work.
|
|
@@ -8,11 +8,6 @@ description: Use when policy identifies behavior, side effects, permissions, or
|
|
|
8
8
|
Test the observable behavior at a stable boundary, not the implementation shape.
|
|
9
9
|
Use this method when assessment selects the `testing` dimension.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
@@ -8,11 +8,6 @@ description: Use when a small-looking change could break something else, before
|
|
|
8
8
|
A small diff is not a small risk. Prove the one fact it is safe because of,
|
|
9
9
|
with runnable proof — not assertion.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
@@ -1,64 +1,47 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workit-challenge
|
|
3
|
-
description: Use when
|
|
3
|
+
description: Use when requirements or consequences leave a real decision open
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Challenge
|
|
6
|
+
# Challenge open choices with evidence
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
the user's. Use this method when assessment selects the `challenge` or
|
|
10
|
-
`decisions` dimension.
|
|
11
|
-
|
|
12
|
-
## Before method work
|
|
13
|
-
|
|
14
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
15
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
16
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
8
|
+
Skip this method for a precise, settled request.
|
|
17
9
|
|
|
18
10
|
## Method
|
|
19
11
|
|
|
20
|
-
1. Ground
|
|
21
|
-
|
|
22
|
-
2.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
demand.
|
|
39
|
-
5. Durability: write or refresh the spec under `docs/<slug>/` only when the
|
|
40
|
-
`durable-spec` requirement fires. No glossary, no second lifecycle.
|
|
41
|
-
6. Counter-case: each material recommendation carries one strongest
|
|
42
|
-
counter-case (hidden assumption, failure mode, coupling, simpler
|
|
43
|
-
alternative). Stop when a counter-case adds no new constraint.
|
|
44
|
-
|
|
45
|
-
Stop at an empty frontier or three rounds; the cap is the bound. Say directly
|
|
46
|
-
when the proposal is weak, overcomplicated, or solves the wrong problem.
|
|
12
|
+
1. Ground the outcome, constraints, evidence, and important unknowns. Inspect
|
|
13
|
+
code and project docs before asking about facts they can answer.
|
|
14
|
+
2. Separate observations, inferences, and proposals. Test assumptions that
|
|
15
|
+
could change the recommendation.
|
|
16
|
+
3. When viable alternatives exist, present two or three genuinely different
|
|
17
|
+
approaches. Recommend one; for each, give its benefit, cost or risk, when it
|
|
18
|
+
fits, and the smallest useful validation. Do not invent a weak alternative.
|
|
19
|
+
4. Ask only consequential questions, in dependency order. Group independent
|
|
20
|
+
choices into one small round. If an authorized reversible default works,
|
|
21
|
+
state it and proceed.
|
|
22
|
+
5. Record a settled choice once in the existing conversation or task context.
|
|
23
|
+
A discussion decision is knowledge; never fabricate a native permission
|
|
24
|
+
receipt or reopen it without new evidence.
|
|
25
|
+
6. Create durable documentation only when requested or when the decision needs
|
|
26
|
+
a future reader. Brainstorming alone does not require a spec.
|
|
27
|
+
|
|
28
|
+
Say directly when evidence shows a proposal is weak, overcomplicated, or solves
|
|
29
|
+
the wrong problem. Raise a counter-case only when it adds a real constraint.
|
|
47
30
|
|
|
48
31
|
## Guardrails
|
|
49
32
|
|
|
50
33
|
- Do not create a universal spec, plan, approval chain, or second lifecycle.
|
|
51
|
-
- Unknowns that affect
|
|
52
|
-
|
|
53
|
-
- Use
|
|
54
|
-
directly.
|
|
55
|
-
- An in-session counter-case is
|
|
34
|
+
- Unknowns that affect an action remain unresolved until evidence or a user
|
|
35
|
+
decision closes them.
|
|
36
|
+
- Use shared operations for tracked state and provenance; never write task
|
|
37
|
+
metadata directly.
|
|
38
|
+
- An in-session counter-case is not fresh-context review.
|
|
56
39
|
|
|
57
40
|
## Common mistakes
|
|
58
41
|
|
|
59
42
|
| Mistake | Correction |
|
|
60
43
|
| --- | --- |
|
|
61
|
-
| Asking what
|
|
62
|
-
| Listing every hypothetical objection |
|
|
63
|
-
| Asking
|
|
64
|
-
|
|
|
44
|
+
| Asking what code or docs already answer | Ground first; the user owns choices, not lookups. |
|
|
45
|
+
| Listing every hypothetical objection | Raise only objections that can change the decision. |
|
|
46
|
+
| Asking for agreement without a recommendation | Recommend an option and explain the tradeoff. |
|
|
47
|
+
| Treating a discussion decision as permission | Record it as knowledge; preserve native host authority. |
|
|
@@ -9,11 +9,6 @@ Debugging is investigation, not a fast symptom patch. Use this method when
|
|
|
9
9
|
assessment selects `root-cause-investigation` or behavior is failing without an
|
|
10
10
|
established root cause.
|
|
11
11
|
|
|
12
|
-
## Before method work
|
|
13
|
-
|
|
14
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
15
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
16
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
17
12
|
|
|
18
13
|
## Method
|
|
19
14
|
|
|
@@ -29,28 +24,11 @@ selects requirements; do not wait for a rule that can only exist after assess.
|
|
|
29
24
|
candidate, evidence, and findings after the change; investigate sibling paths
|
|
30
25
|
and stale conclusions rather than assuming the first patch worked.
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Never hypothesize without a loop that goes red on this exact failure. Build
|
|
39
|
-
the loop first, in this order: failing test → CLI command + fixture →
|
|
40
|
-
request replay → trace. Tighten it until fast, sharp, deterministic, and
|
|
41
|
-
agent-runnable. No loop → stop, list what was tried, ask for the
|
|
42
|
-
environment or artifact; never theorize without it.
|
|
43
|
-
|
|
44
|
-
Minimise: cut one element at a time until every remainder is load-bearing;
|
|
45
|
-
the minimised case becomes the regression test. State hypotheses ranked and
|
|
46
|
-
falsifiable (`If <X> then changing <Y> removes it`), probe one variable at
|
|
47
|
-
a time, tag debug logs for grep cleanup. Write the regression at the seam
|
|
48
|
-
where the real pattern occurs — no correct seam means the finding is the
|
|
49
|
-
architecture, so flag it instead of patching around it.
|
|
50
|
-
|
|
51
|
-
When the host reports writer capability unavailable, do not mutate or delegate
|
|
52
|
-
mutation. Continue inline only if policy and lead authority permit it;
|
|
53
|
-
otherwise report the capability gap.
|
|
27
|
+
Respect the user's scope and native authority. For a deterministic failure, make
|
|
28
|
+
one focused reproduction that exercises the affected boundary and add a
|
|
29
|
+
regression check when practical. If no direct reproduction exists, gather the
|
|
30
|
+
available evidence and state what remains uncertain instead of inventing a red
|
|
31
|
+
loop or blocking unrelated work.
|
|
54
32
|
|
|
55
33
|
## Common mistakes
|
|
56
34
|
|
|
@@ -8,11 +8,6 @@ description: Use before opening a PR or after implementation to remove AI slop f
|
|
|
8
8
|
Throughput without quality is slop. Clean it with a minimal diff — deslop
|
|
9
9
|
never refactors behavior.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
@@ -8,11 +8,6 @@ description: Use when a spec or plan needs a flow or architecture diagram
|
|
|
8
8
|
Tables first, ASCII trees second, mermaid only when a flow or architecture
|
|
9
9
|
needs it. Flowchart, sequence, state, or ER only. No renderer, no network.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Syntax rules (mermaid v11)
|
|
18
13
|
|
|
@@ -8,11 +8,6 @@ description: Use to drive a red CI pipeline back to green, usually inside babysi
|
|
|
8
8
|
Watch, classify, fix, push once, re-verify. Host-native (`gh` / GitLab);
|
|
9
9
|
never invent CI APIs.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
@@ -5,14 +5,8 @@ description: Use when work must continue in another session, host, or agent afte
|
|
|
5
5
|
|
|
6
6
|
# Handoff durable task state
|
|
7
7
|
|
|
8
|
-
Transfer continuity, not live authority. Use this method when
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
8
|
+
Transfer continuity, not live authority. Use this method when a tracked item
|
|
9
|
+
must continue in another session, host, or agent.
|
|
16
10
|
|
|
17
11
|
## Method
|
|
18
12
|
|
|
@@ -1,41 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workit-implement
|
|
3
|
-
description: Use when
|
|
3
|
+
description: Use when implementation benefits from bounded delegation or shared checkout coordination
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Implement within authority
|
|
7
7
|
|
|
8
|
-
Implement
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
8
|
+
Implement within the user request and native host permissions. A task record and
|
|
9
|
+
writer ownership are optional coordination tools. Assignment never expands the
|
|
10
|
+
request, and a timeout is not proof that a worker stopped.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
19
|
-
1. Inspect
|
|
20
|
-
|
|
14
|
+
1. Inspect the repository, relevant rules, host capabilities, and current work.
|
|
15
|
+
Inspect task state only when this work is already tracked.
|
|
21
16
|
2. If a helper is useful, assign one bounded objective with allowed paths,
|
|
22
17
|
applicable requirements, evidence needed, and a stopping condition. Helpers
|
|
23
18
|
cannot change scope, record binding decisions, close or pause the task, assign
|
|
24
19
|
helpers, or resolve blockers for the lead.
|
|
25
|
-
3.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
4. Reconcile
|
|
29
|
-
delegation is unavailable, continue inline
|
|
30
|
-
the capability limitation.
|
|
20
|
+
3. Use writer ownership only when another Workit actor may mutate the same
|
|
21
|
+
checkout; release it when coordination ends. Cancellation remains uncertain
|
|
22
|
+
until process exit or explicit recovery.
|
|
23
|
+
4. Reconcile helper reports and run the checks appropriate to the requested
|
|
24
|
+
outcome. If delegation is unavailable, continue inline when useful.
|
|
31
25
|
|
|
32
26
|
Do not edit Workit metadata directly, create nested helper trees, widen paths, or
|
|
33
27
|
create a second lifecycle. Read-only investigation and bounded reports do not
|
|
34
28
|
grant product-write ownership.
|
|
35
29
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
Do not request writer ownership for a solo edit. If a concurrent Workit writer
|
|
31
|
+
cannot be fenced, stop only the conflicting managed writes; ordinary writes still
|
|
32
|
+
follow the native host permission and sandbox.
|
|
39
33
|
|
|
40
34
|
## Common mistakes
|
|
41
35
|
|
|
@@ -8,11 +8,6 @@ description: Use when a UI decision needs sketching before implementation
|
|
|
8
8
|
Sketch, don't build. Three genuinely different layout hypotheses maximum,
|
|
9
9
|
ASCII only, no code output.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
@@ -5,74 +5,41 @@ description: Use when dependencies, sequencing, coordination, or resumption make
|
|
|
5
5
|
|
|
6
6
|
# Plan useful coordination
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
8
|
+
A plan is useful when work has dependent steps, a handoff, concurrent actors, or
|
|
9
|
+
meaningful unresolved choices. It is never a prerequisite for implementation.
|
|
16
10
|
|
|
17
11
|
## Method
|
|
18
12
|
|
|
19
|
-
1.
|
|
20
|
-
|
|
21
|
-
2. Record only the useful sequence: objective, dependency, bounded
|
|
22
|
-
needed,
|
|
23
|
-
3.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
5.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
6.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
spec-and-plan ceremony, duplicate task state, approval chain, or custom status
|
|
44
|
-
machine. A short paragraph is enough when it captures the required continuity.
|
|
45
|
-
|
|
46
|
-
## Triage (automatic)
|
|
47
|
-
|
|
48
|
-
Set assessor signals from size facts, not memory (`triageTier` /
|
|
49
|
-
`triageSignals` in policy-resolver):
|
|
50
|
-
|
|
51
|
-
- **Large → spec + full plan:** new/changed observable behavior, open
|
|
52
|
-
ambiguity, cross-package/host contract or auth/data/security surface,
|
|
53
|
-
irreversible migration, or ≥3 subsystems / ≥2 packages touched.
|
|
54
|
-
- **Medium → compact plan-only** (Sequence/Acceptance, ~30-60 lines): known
|
|
55
|
-
approach, single subsystem, 2-8 steps. Step count alone never escalates
|
|
56
|
-
a known single-subsystem run to spec.
|
|
57
|
-
- **Small → neither** (progress + evidence only): single bounded mechanical
|
|
58
|
-
action, no open choices, reversible. Record `Spec: none (reason)`.
|
|
59
|
-
|
|
60
|
-
`task.start` + `policy.assess` stay mandatory at all sizes. The lead may
|
|
61
|
-
re-tier with the reason recorded in progress (override, never silent).
|
|
62
|
-
|
|
63
|
-
## Decomposition
|
|
64
|
-
|
|
65
|
-
Slice tracer bullets, not layers: each plan task crosses the necessary
|
|
66
|
-
layers to a small demoable behavior with its blocking edges declared.
|
|
67
|
-
Wide refactors use expand–contract (add the new seam, migrate callers,
|
|
68
|
-
delete the old). Per task record Files (create/modify/test, exact paths),
|
|
69
|
-
exact commands with expected output, and one commit. No placeholders —
|
|
70
|
-
an implementer must be able to execute a task with zero extra context.
|
|
13
|
+
1. Establish the requested outcome, constraints, dependencies, and important
|
|
14
|
+
unknowns from the available code, docs, and configuration before asking.
|
|
15
|
+
2. Record only the useful sequence: objective, dependency, bounded outcome,
|
|
16
|
+
evidence needed, and next action. Reuse the project's existing format.
|
|
17
|
+
3. Start a tracked record only when handoff, dependent steps, coordination, or
|
|
18
|
+
durable decisions need continuity. Infer observable facts instead of asking
|
|
19
|
+
the user to fill redundant protocol fields.
|
|
20
|
+
4. Create a spec when a durable behavior contract or interface is requested or
|
|
21
|
+
will help a future reader. Use an ADR for a consequential trade-off and a
|
|
22
|
+
glossary for stable terms. A small fix needs no document.
|
|
23
|
+
5. If the user authorized implementation, proceed through the agreed endpoint
|
|
24
|
+
and applicable checks. Do not ask for a separate plan approval or repeat
|
|
25
|
+
"continue?". Stop for a new consequential choice, host denial, conflict, or
|
|
26
|
+
blocker that cannot be resolved safely.
|
|
27
|
+
6. Update a checkpoint at meaningful boundaries when another session may need
|
|
28
|
+
to resume. Keep settled decisions, changed files, actual checks, blockers,
|
|
29
|
+
and the next action; omit transcript and process trivia.
|
|
30
|
+
|
|
31
|
+
## Shape
|
|
32
|
+
|
|
33
|
+
Plan slices as small end-to-end outcomes with explicit dependencies and checks.
|
|
34
|
+
Keep repo policy and native host authority separate. Preserve the user's branch
|
|
35
|
+
and commit conventions. Do not prescribe one commit per step or create a second
|
|
36
|
+
approval chain unless the user asked for that delivery format.
|
|
71
37
|
|
|
72
38
|
## Common mistakes
|
|
73
39
|
|
|
74
40
|
| Mistake | Correction |
|
|
75
41
|
| --- | --- |
|
|
76
|
-
| Writing a
|
|
77
|
-
|
|
|
78
|
-
|
|
|
42
|
+
| Writing a packet for a bounded reversible change | Leave the change undocumented. |
|
|
43
|
+
| Asking what repository state or code can answer | Inspect it first. |
|
|
44
|
+
| Treating the plan as authority | Follow the user's scope and native host permissions. |
|
|
45
|
+
| Copying a transcript into the plan | Keep decisions, evidence, gaps, and next action only. |
|
|
@@ -8,11 +8,6 @@ description: Use when policy requires fresh-context review of a candidate or whe
|
|
|
8
8
|
Review the real candidate in a stable context. A review is evidence about the
|
|
9
9
|
current candidate, not an author's success summary.
|
|
10
10
|
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
16
11
|
|
|
17
12
|
## Method
|
|
18
13
|
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workit-steer
|
|
3
|
-
description: Use when new instructions, interruptions, or forgotten items
|
|
3
|
+
description: Use when new instructions, interruptions, or forgotten items change substantial ongoing work
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Steer without
|
|
6
|
+
# Steer without forced lifecycle
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Before method work
|
|
12
|
-
|
|
13
|
-
If there is no active or paused task, run shared `task.start` then `policy.assess`
|
|
14
|
-
before relying on selected policy rules or other product mutations. Assessment
|
|
15
|
-
selects requirements; do not wait for a rule that can only exist after assess.
|
|
8
|
+
Classify new input as a quick question, a same-task adjustment, or a separate
|
|
9
|
+
request. Preserve continuity when it helps; do not manufacture task mutations.
|
|
16
10
|
|
|
17
11
|
## Method
|
|
18
12
|
|
|
19
|
-
1.
|
|
20
|
-
|
|
21
|
-
2.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
13
|
+
1. Answer a quick question from current context. Do not pause, resume, create,
|
|
14
|
+
assess, or close a task just to answer it.
|
|
15
|
+
2. For a same-task adjustment, update only affected constraints and next actions.
|
|
16
|
+
Keep an existing checkpoint when it helps; reassess policy only when evidence
|
|
17
|
+
or constraints changed enough to affect a rule.
|
|
18
|
+
3. For a separate request, do not silently resume an old objective. Park a
|
|
19
|
+
concise checkpoint only when substantial work needs to continue later. Start
|
|
20
|
+
a distinct tracked record only if the new work benefits from continuity,
|
|
21
|
+
dependencies, coordination, or durable decisions.
|
|
22
|
+
4. Before resuming a named tracked task, reconcile its checkout, branch, dirty
|
|
23
|
+
state, current policy, stale evidence, uncertain effects, and ownership. Do
|
|
24
|
+
not change branches, stash, fetch large histories, or seize ownership just
|
|
25
|
+
to display a history choice.
|
|
26
|
+
5. Continue to the user's authorized endpoint with applicable checks. Ask only
|
|
27
|
+
about consequential choices the code and available context cannot resolve.
|
|
28
|
+
|
|
29
|
+
## Common mistakes
|
|
30
|
+
|
|
31
|
+
| Mistake | Correction |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Treating a quick question as interruption | Answer without changing task state. |
|
|
34
|
+
| Auto-resuming an old objective | Wait for the user's direction to resume it. |
|
|
35
|
+
| Rebuilding continuity from a transcript | Keep a compact checkpoint with evidence and next action. |
|
package/src/core/authority.ts
CHANGED
|
@@ -625,7 +625,12 @@ const validateAction = (
|
|
|
625
625
|
operation = null;
|
|
626
626
|
}
|
|
627
627
|
const cls = operationAutoClass(operation);
|
|
628
|
-
if (
|
|
628
|
+
if (
|
|
629
|
+
!cls ||
|
|
630
|
+
!standing.some((receipt) =>
|
|
631
|
+
standingApprovalLive(store.root, receipt, cls, undefined, decision.binding.approvedContent),
|
|
632
|
+
)
|
|
633
|
+
)
|
|
629
634
|
return failure("permission_denied", "standing auto-approval is not live for this operation");
|
|
630
635
|
}
|
|
631
636
|
if (decision.revoked) return failure("permission_denied", "decision is revoked");
|