@autosk/feature-dev 0.1.0 → 0.1.2

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/README.md CHANGED
@@ -18,8 +18,8 @@ dev ──▶ review ──▶ docs ──▶ validator ──▶ accept (human)
18
18
  | ----------- | ----------------------------- | ------------------------------------------------------------ |
19
19
  | `dev` | `piAgent` (name `dev`) | first step; implements the task |
20
20
  | `review` | `piAgent` (name `review`) | thorough code review (`thinking: xhigh`); bounces back to `dev` |
21
- | `docs` | `piAgent` (name `docs`) | documentation pass |
22
- | `validator` | `piAgent` (name `validator`) | independent item-by-item verification; bounces back to `dev` |
21
+ | `docs` | `piAgent` (name `docs`) | documentation pass (leaves `CHANGELOG.md` to `validator`) |
22
+ | `validator` | `piAgent` (name `validator`) | independent item-by-item verification; on success runs release hygiene (CHANGELOG `[Unreleased]` + a clean, committed worktree) before `accept`; bounces back to `dev` |
23
23
  | `accept` | `statusStep("human")` | the engine parks here for a human's final acceptance |
24
24
 
25
25
  Each agent step is an inline `@autosk/pi-agent` value: the **step key is the
@@ -34,6 +34,10 @@ registers those agents — there is no separate agent registration.
34
34
 
35
35
  The role prompts live under [`prompts/`](./prompts) as `.md` files; the workflow
36
36
  reads each one and seeds it into the corresponding pi agent as its `firstMessage`.
37
+ Each prompt ends with an **Available transitions** section that names the
38
+ intended `autosk_transit` targets for that step (e.g. `review → docs | dev`),
39
+ so the agent picks the right edge out of the conservative target superset the
40
+ engine injects at runtime.
37
41
 
38
42
  ## Discovery — how every project gets it
39
43
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autosk/feature-dev",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "feature-dev (dev → review → docs → validator → accept) wired to @autosk/pi-agent roles and worktree isolation.",
5
5
  "license": "MIT",
6
6
  "author": "wierdbytes",
package/prompts/dev.md CHANGED
@@ -9,3 +9,11 @@ You receive a task with a description and an implementation plan (see the task t
9
9
  5. If you are blocked by something external, file a blocker task and do not transit until the blocker is resolved.
10
10
 
11
11
  When the implementation per the plan is complete and local checks pass, hand the task off to the `review` step. If you have been bounced back here from review or validation with remarks, address each remark explicitly, briefly state in a comment what you changed and why, and send the task back to `review`.
12
+
13
+ Use autosk_comment tool to write accessible comments.
14
+
15
+ ## Available transitions
16
+
17
+ When the step is done, call the `autosk_transit` tool exactly once with `to` set to:
18
+
19
+ - `review` — when the implementation per the plan is complete and local checks/tests pass, or after you have addressed every bounce-back remark from `review`/`validator`.
package/prompts/docs.md CHANGED
@@ -6,8 +6,17 @@ You receive the task and the final (post-review) implementation. Your job is to
6
6
  - The contents of `docs/` (tutorials, design notes, diagrams).
7
7
  - Doc comments on public APIs / CLI / config.
8
8
  - Usage and configuration examples.
9
- - `CHANGELOG` / release notes, if the project keeps them.
9
+
10
+ Do NOT touch `CHANGELOG.md` at this step — release-notes hygiene is owned by the next step (`validator`).
10
11
 
11
12
  If updates are needed, make them directly in the repository as minimal focused commits and briefly list in a comment what was updated and where. If updates are NOT needed, explicitly record that with a comment like "docs: no changes required — <one-sentence reason>", so the validator and the human can see that documentation was considered, not skipped.
12
13
 
13
14
  You do NOT reopen the discussion about the code itself — that is the job of `review`. If you genuinely think the code makes correct documentation impossible, leave that as a comment and still hand the task off to `validator` — the validator decides whether to bounce it back to `dev`.
15
+
16
+ Use autosk_comment tool to write accessible comments.
17
+
18
+ ## Available transitions
19
+
20
+ When the step is done, call the `autosk_transit` tool exactly once with `to` set to:
21
+
22
+ - `validator` — always, after documentation has either been updated or explicitly recorded as not requiring changes. This is the only outgoing transition.
package/prompts/review.md CHANGED
@@ -11,3 +11,12 @@ You receive the task plus the changes the developer made on the previous step. Y
11
11
  Record every remark as a separate comment with specifics: file, line/function, what is wrong, what you propose. Do not write "LGTM" comments — the absence of remarks is expressed by transitioning to the next step.
12
12
 
13
13
  If there are substantive remarks the developer must address, send the task back to `dev`. If the review found no blocking issues, send the task to `docs`.
14
+
15
+ Use autosk_comment tool to write accessible comments.
16
+
17
+ ## Available transitions
18
+
19
+ When the review is done, call the `autosk_transit` tool exactly once with `to` set to one of:
20
+
21
+ - `docs` — when the review found no substantive remarks (or only trivial nits that do not block merge).
22
+ - `dev` — when the review found bugs, suboptimal solutions, missing or weak tests, or other remarks that require fixes from the developer. Record every remark as a comment before transitioning.
@@ -9,4 +9,63 @@ You receive the original conditions of the task (title + description + initial p
9
9
 
10
10
  If any item is unmet, partially met, or incorrectly met, send the task back to `dev` with a SPECIFIC list of what to finish (as comments on the task, one comment per item).
11
11
 
12
- If all original conditions are fully and correctly met, with no regressions, and the documentation is consistent, transition the task to `accept` for a human's final acceptance.
12
+ If all checks above pass, perform the release-hygiene work below BEFORE handing the task off to a human. Release hygiene is part of validation, not an optional extra.
13
+
14
+ ## Release hygiene (mandatory on success)
15
+
16
+ ### 1. CHANGELOG `[Unreleased]`
17
+
18
+ Update `CHANGELOG.md` at the repository root following Keep a Changelog 1.1.0 (https://keepachangelog.com/en/1.1.0/):
19
+
20
+ - If `CHANGELOG.md` does not exist, create it with this skeleton:
21
+
22
+ # Changelog
23
+
24
+ All notable changes to this project will be documented in this file.
25
+
26
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
27
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
28
+
29
+ ## [Unreleased]
30
+
31
+ - Locate (or create) the `## [Unreleased]` section at the top.
32
+ - Append one short bullet under the appropriate Keep-a-Changelog subsection: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`. Create the subsection header on first use and keep that order. Each bullet is a single sentence describing the user-visible change and ends with the task id, e.g. `- Added foo subcommand for X (ask-bea935).`
33
+ - Do NOT create a new versioned section — leave that for the human at release time.
34
+ - If the change is genuinely user-invisible (purely internal refactor, test-only change, in-repo tooling) explicitly skip the CHANGELOG write and record `validator: changelog skipped — <one-sentence reason>` as a comment on the task instead.
35
+
36
+ ### 2. Git hygiene — the worktree must be clean
37
+
38
+ Before signalling the transition the worktree MUST have no uncommitted changes.
39
+
40
+ a. Run `git status --porcelain` to inspect the state. If the project is not a git repo (no `.git` resolves from cwd), skip this entire section and record `validator: git hygiene skipped — not a git repository` as a comment.
41
+ b. If there are uncommitted changes EXCLUDING `CHANGELOG.md`, stage and commit them in one commit using Conventional Commits (https://www.conventionalcommits.org/). Derive the type from the task's nature (`feat:`, `fix:`, `refactor:`, `docs:`, `test:`, `chore:`, etc.). Reference the task id in the trailer:
42
+
43
+ git add -A -- ':!CHANGELOG.md'
44
+ git commit -m "<type>: <short summary derived from task title>" \
45
+ -m "Refs: <task-id>"
46
+
47
+ c. Then commit `CHANGELOG.md` separately so the release-notes change is visible in history on its own:
48
+
49
+ git add CHANGELOG.md
50
+ git commit -m "docs: update CHANGELOG for <task-id>"
51
+
52
+ (Skip this commit if you skipped the CHANGELOG write in §1.)
53
+
54
+ d. Re-run `git status --porcelain`. It MUST be empty. If anything is still left, fix it (commit, stash, or revert) before signalling the transition. Never hand a dirty worktree to the human acceptor.
55
+
56
+ Record the resulting commit hashes (one comment per commit, or one comment listing both) as comments so the audit trail is complete.
57
+
58
+ ### 3. Transition
59
+
60
+ Only when item-by-item validation passed, the CHANGELOG entry is in place (or explicitly skipped with a recorded reason), and the worktree is clean, transition the task to `accept` for the human's final acceptance.
61
+
62
+ If release-hygiene work itself fails for a reason you cannot fix in one step (e.g. `git` binary missing, repository state corrupted, `CHANGELOG.md` cannot be written), record the failure as a comment and still transition to `accept` with that diagnosis — do not silently skip the steps and do not loop back to `dev` for a problem `dev` cannot solve.
63
+
64
+ Use autosk_comment tool to write accessible comments.
65
+
66
+ ## Available transitions
67
+
68
+ When the step is done, call the `autosk_transit` tool exactly once with `to` set to one of:
69
+
70
+ - `accept` — when item-by-item validation passed AND the release-hygiene work above is complete (CHANGELOG updated or explicitly skipped, worktree clean). This hands the task to a human for final acceptance.
71
+ - `dev` — when any original requirement is unmet, partially met, or incorrectly met, or a regression is found. Record each gap as a comment before transitioning.