@farmslot/skills 0.4.0 → 0.6.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/CHANGELOG.md CHANGED
@@ -6,6 +6,16 @@ All notable changes to `@farmslot/skills` are tracked here.
6
6
 
7
7
  - Active-development baseline; add user-facing changes here before release or package publication.
8
8
 
9
+ ## 0.6.0 - 2026-10-04
10
+
11
+ - `import` of `@farmslot/skills/scripts/worker-terminal-contract.cjs` exposes its names: it re-exports `@farmslot/agent-runtime/scripts/worker-terminal-contract.cjs` with a literal `require`, which ESM can follow, instead of a computed path with a repo-relative fallback.
12
+ - Skills refer to the recipe runner package as `@farmslot/recipe-runner` (renamed from `@farmslot/recipe-harness`).
13
+ - Publish with agent-runtime 0.17.0.
14
+
15
+ ## 0.5.0 - 2026-09-20
16
+
17
+ - README documents the checklist-shaped skill rule: a skill invoked as a child checklist unit (ADR-060) needs `##` sections and `- [ ]` rows the shared parser can enumerate, informational sections named so the skip list drops them, and numbered labels matching their positions. A prose-only skill cannot be a child unit.
18
+
9
19
  ## 0.4.0 - 2026-09-17
10
20
 
11
21
  - Recipe Cook lane: the runner envelope reports `terminal_status` (`done|blocked|failed`) and `terminal_reason`; the lane no longer reads or rewrites a `STATUS:` line in the run-local TASK.md, and `meta.json` records `terminal_reason`. Templates and skill text drop the field. An envelope without a valid `terminal_status`, or a blocked/failed one without `terminal_reason`, fails the run; the model output stays in `runner-output.txt`. The `tmux-model-driver` launcher and watcher stop mentioning or parsing the field.
package/README.md CHANGED
@@ -44,6 +44,35 @@ Supported layouts:
44
44
  | `project-adopt` | Recommend the smallest useful Farmslot integration level for the project. |
45
45
  | `packet` | Communicate plans, blockers, decisions, and evidence reviews as compact operator packets. |
46
46
 
47
+ ## Checklist-shaped skills
48
+
49
+ A checklist step can hand its work to a skill as a **child unit**: the step registers the
50
+ skill, `mark` materializes its body as `subtasks/<id>.md` beside the task checklist, and the
51
+ worker marks the skill's own rows so progress is visible per row instead of one box open for
52
+ the whole review. Farmslot only materializes and observes files; nothing is spawned.
53
+
54
+ A skill can be a child unit when its body is enumerable by the same parser the task checklist
55
+ uses:
56
+
57
+ - `##` (or deeper) headings and `- [ ]` rows, with at least one row. A prose-only skill cannot be
58
+ a child unit.
59
+ - Name informational sections so the shared skip list drops them: `Rules`, `Description`,
60
+ `Task`, `Acceptance Criteria`, `Affected Area`, `Screenshots`, `Comments`, `Root Cause`,
61
+ `Recipe ACs`, `Pre-merge`. Boxes there are never steps.
62
+ - If a row label carries its own number (`**3. …**`), it must match the row's position. The
63
+ numbering guard refuses a body where they diverge, because `mark` targets positions.
64
+
65
+ A template step registers the installed skill and finishes it:
66
+
67
+ ```bash
68
+ {{TASK_DIR}}/mark sub start perps-review --step 21 --from .agents/skills/mms-perps-review-pr/skill.md
69
+ {{TASK_DIR}}/mark sub perps-review 1 # …one per row
70
+ {{TASK_DIR}}/mark sub perps-review complete --report artifacts/review.md
71
+ ```
72
+
73
+ The step's own box is ticked by that `complete`, so the template says what to register, and the
74
+ skill owns what to check.
75
+
47
76
  ## Adoption Ladder
48
77
 
49
78
  1. Skills only: author and review recipes without a runner.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farmslot/skills",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "prepublishOnly": "node ../../scripts/quality/check-farmslot-package-readiness.mjs --publish --packages @farmslot/skills"
34
34
  },
35
35
  "dependencies": {
36
- "@farmslot/agent-runtime": "0.10.0"
36
+ "@farmslot/agent-runtime": "0.17.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.0.0",
@@ -1,17 +1,4 @@
1
1
  'use strict';
2
2
 
3
- const path = require('node:path');
4
- const { createRequire } = require('node:module');
5
-
6
- const requireFromHere = createRequire(__filename);
7
-
8
- function resolveRuntimeScript() {
9
- try {
10
- return requireFromHere.resolve('@farmslot/agent-runtime/scripts/worker-terminal-contract.cjs');
11
- } catch (error) {
12
- if (error.code !== 'MODULE_NOT_FOUND') throw error;
13
- return path.resolve(__dirname, '../../agent-runtime/scripts/worker-terminal-contract.cjs');
14
- }
15
- }
16
-
17
- module.exports = require(resolveRuntimeScript());
3
+ // A literal require: Node can then see this re-export's names when an ESM consumer imports it.
4
+ module.exports = require('@farmslot/agent-runtime/scripts/worker-terminal-contract.cjs');
@@ -22,7 +22,7 @@ Check how far a project can go with recipes today.
22
22
 
23
23
  1. Inspect package scripts and repo docs for recipe commands.
24
24
  2. Look for recipe files, runner manifests, action manifests, schemas, or artifact conventions.
25
- 3. Check whether `@farmslot/recipe-harness`, an app-specific runner, or a custom script is installed.
25
+ 3. Check whether `@farmslot/recipe-runner`, an app-specific runner, or a custom script is installed.
26
26
  4. Identify proof surfaces: state/log artifacts, screenshots, traces, browser control, mobile bridge, or command output.
27
27
  5. Report the smallest useful next step.
28
28
 
@@ -4,7 +4,7 @@ description: Help run or install a local recipe runtime without assuming the ful
4
4
  compatibility: Claude, Codex, Cursor, and Markdown skill runners with shell access
5
5
  metadata:
6
6
  package: '@farmslot/skills'
7
- related_package: '@farmslot/recipe-harness'
7
+ related_package: '@farmslot/recipe-runner'
8
8
  allowed-tools: Read Bash(rg:*) Bash(node:*) Bash(npm:*) Bash(yarn:*) Bash(pnpm:*) Bash(farmslot-recipe:*)
9
9
  ---
10
10
 
@@ -15,7 +15,7 @@ Use the local recipe runtime when one exists, or recommend the smallest install
15
15
  ## Workflow
16
16
 
17
17
  1. Find the project-owned recipe command first.
18
- 2. If no command exists, check for `@farmslot/recipe-harness` or an app-specific harness package.
18
+ 2. If no command exists, check for `@farmslot/recipe-runner` or an app-specific harness package.
19
19
  3. Before authoring, inspect the closest recipes with `farmslot-recipe run --list` and `farmslot-recipe run <id> --describe`, then inspect declared actions only if no recipe fits. Prefer project discovery commands; otherwise read only the relevant manifest entries and examples.
20
20
  4. Run dry-run or schema validation before live execution when available.
21
21
  5. Record artifact paths and validation output.