@1aboveio/skills 1.0.16 → 1.0.17

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.
Files changed (82) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/.codex-plugin/resources.json +143 -143
  3. package/package.json +4 -4
  4. package/skills/app-dev/airflow/SKILL.md +1 -1
  5. package/skills/app-dev/android-development/SKILL.md +9 -7
  6. package/skills/app-dev/android-development/references/feature-work.md +3 -2
  7. package/skills/app-dev/android-development/references/gotchas.md +13 -0
  8. package/skills/app-dev/android-development/references/setup.md +8 -5
  9. package/skills/app-dev/android-development/references/ui-journeys.md +83 -11
  10. package/skills/app-dev/app-debug/SKILL.md +1 -1
  11. package/skills/app-dev/better-auth/SKILL.md +1 -1
  12. package/skills/app-dev/data-catalog/SKILL.md +1 -1
  13. package/skills/app-dev/data-quality/SKILL.md +1 -1
  14. package/skills/app-dev/ios-foundation/SKILL.md +1 -1
  15. package/skills/app-dev/monorepo/SKILL.md +1 -1
  16. package/skills/app-dev/nextjs-fullstack/SKILL.md +1 -1
  17. package/skills/app-dev/prisma-setup/SKILL.md +1 -1
  18. package/skills/app-dev/pyspark/SKILL.md +1 -1
  19. package/skills/app-dev/python-backend/SKILL.md +1 -1
  20. package/skills/app-dev/shadcn/SKILL.md +1 -1
  21. package/skills/app-dev/zod-v4/SKILL.md +1 -1
  22. package/skills/cicd/cloud-build/SKILL.md +1 -1
  23. package/skills/cicd/cloud-debug/SKILL.md +1 -1
  24. package/skills/cicd/cloud-deploy/SKILL.md +1 -1
  25. package/skills/cicd/docker/SKILL.md +1 -1
  26. package/skills/cicd/github-actions/SKILL.md +1 -1
  27. package/skills/cicd/github-flow/SKILL.md +1 -1
  28. package/skills/cicd/google-cloud/SKILL.md +1 -1
  29. package/skills/cicd/mergify/SKILL.md +1 -1
  30. package/skills/cicd/podman/SKILL.md +1 -1
  31. package/skills/content/article-review/SKILL.md +1 -1
  32. package/skills/content/article-to-image/SKILL.md +1 -1
  33. package/skills/content/flowchart-svg/SKILL.md +1 -1
  34. package/skills/content/image-gen/SKILL.md +1 -1
  35. package/skills/content/mermaid/SKILL.md +1 -1
  36. package/skills/content/wechat-article-writer/SKILL.md +1 -1
  37. package/skills/content/wechat-publisher/SKILL.md +1 -1
  38. package/skills/content/wechat-search/SKILL.md +1 -1
  39. package/skills/content/xai-search/SKILL.md +1 -1
  40. package/skills/core/distill-writing/SKILL.md +1 -1
  41. package/skills/core/doc-to-md/SKILL.md +1 -1
  42. package/skills/core/editorial-review/SKILL.md +1 -1
  43. package/skills/core/house-style/SKILL.md +1 -1
  44. package/skills/core/plain-language/SKILL.md +1 -1
  45. package/skills/core/polish-cn/SKILL.md +1 -1
  46. package/skills/core/reg-parser/SKILL.md +1 -1
  47. package/skills/core/terminology/SKILL.md +1 -1
  48. package/skills/core/write-doc/SKILL.md +1 -1
  49. package/skills/core/write-report/SKILL.md +1 -1
  50. package/skills/engineering/better-review/SKILL.md +1 -1
  51. package/skills/engineering/e2e-test/SKILL.md +1 -1
  52. package/skills/engineering/engineering/SKILL.md +1 -1
  53. package/skills/engineering/engineering-runtime/SKILL.md +1 -1
  54. package/skills/engineering/engineering-runtime/coherence/workflow.json +13 -13
  55. package/skills/engineering/ensure-coverage/SKILL.md +1 -1
  56. package/skills/engineering/golden-path/SKILL.md +1 -1
  57. package/skills/engineering/harness-runtime/SKILL.md +1 -1
  58. package/skills/engineering/harness-runtime/agent-catalog.mjs +2 -1
  59. package/skills/engineering/resolve-issues/SKILL.md +11 -9
  60. package/skills/engineering/resolve-issues/references/exploration.md +60 -18
  61. package/skills/engineering/resolve-issues/references/implementation.md +1 -1
  62. package/skills/engineering/resolve-issues/references/preflight.md +47 -22
  63. package/skills/engineering/resolve-issues/references/review.md +2 -1
  64. package/skills/engineering/resolve-issues/references/shared-modules.md +58 -4
  65. package/skills/engineering/resolve-issues/references/task-plan.md +30 -10
  66. package/skills/engineering/resolve-issues/scripts/findings-reuse.mjs +1 -1
  67. package/skills/engineering/resolve-issues/scripts/next-actions.mjs +7 -7
  68. package/skills/engineering/resolve-issues/scripts/plan-sync.mjs +1 -1
  69. package/skills/engineering/resolve-issues/scripts/size-check.mjs +6 -5
  70. package/skills/engineering/resolve-release/SKILL.md +1 -1
  71. package/skills/engineering/rush-issues/SKILL.md +1 -1
  72. package/skills/engineering/rush-release/SKILL.md +1 -1
  73. package/skills/engineering/test-quality/SKILL.md +1 -1
  74. package/skills/risk-compliance/compliance-audit/SKILL.md +1 -1
  75. package/skills/risk-compliance/contract-compare/SKILL.md +1 -1
  76. package/skills/risk-compliance/contract-review/SKILL.md +1 -1
  77. package/skills/risk-compliance/doc-authenticity/SKILL.md +1 -1
  78. package/skills/risk-compliance/fraud-detection/SKILL.md +1 -1
  79. package/skills/risk-compliance/payment-analysis/SKILL.md +1 -1
  80. package/skills/risk-compliance/portfolio-payment-analysis/SKILL.md +1 -1
  81. package/skills/risk-compliance/similar-domain/SKILL.md +1 -1
  82. package/skills/risk-compliance/tld-detection/SKILL.md +1 -1
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: editorial-review
3
3
  description: "Review a document or generated report for what it says (does the reader get the answer, is the argument sound, is anything unsupported, obvious or repeated), then fix the content. Use to review, tighten or clarify a doc or report, and as the review step of write-doc, write-report and domain report skills. NOT for Chinese wording (polish-cn) or code review (better-review)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Editorial review
@@ -3,7 +3,7 @@ name: house-style
3
3
  description: "Shared reference the writing skills read by path: WRITING.md lookup and precedence, template choice, gap markers, template shape, the bundled templates, and the default English and Chinese style guides. Never select or invoke it as a task."
4
4
  disable-model-invocation: true
5
5
  user-invocable: false
6
- release-version: 0.48.0
6
+ release-version: 0.48.1
7
7
  ---
8
8
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
9
9
  # House style
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: plain-language
3
3
  description: "Session mode: every reply and status line in plain language — lead with the point, everyday words, full sentences, no filler — in English or Chinese, until turned off. Enable by default when the project has an applicable WRITING.md, even without a slash command. Use for /plain-language, 'talk plainly', '说人话', and explicit requests to remember project reply preferences; /plain-language init persists the default and loading instructions. Save reply rules only under Agent replies; route document preferences to distill-writing. Ordinary mode toggles remain session-only. Turn off with '/plain-language off' or 'normal mode'. NOT for writing a document (write-doc) or analytical report (write-report) or reviewing one (editorial-review)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Plain language
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: polish-cn
3
3
  description: "Polish the Chinese wording of a finished document or report, with a script proving every number, date, identifier, link and protected term is unchanged; prefers a Chinese model and records which ran. Use for '中文润色' or as a report skill's last step. NOT for cutting or restructuring content (editorial-review) or translating (write-doc or write-report)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Polish Chinese
@@ -2,7 +2,7 @@
2
2
  name: reg-parser
3
3
  version: 1.1.0
4
4
  description: "Parse regulatory/scheme documents into structured outputs: convert a regulation (AML, VARS, PCI-DSS, KYC, GDPR) into an audit-ready compliance checklist, or trace contract clauses to a mandate source. Suggest proactively when a regulation PDF accompanies a contract review or compliance task. NOT general summarization (doc-to-md), writing a gap-analysis report (write-report), or writing a policy from the checklist (write-doc)."
5
- release-version: 0.48.0
5
+ release-version: 0.48.1
6
6
  ---
7
7
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
8
  # reg-parser
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: terminology
3
3
  description: "Build and keep a project's TERMINOLOGY.md: the preferred term per concept in English, 简体 and 繁體, and the terms to avoid. Use to set it up from the project's documents, when the user settles or corrects a term, or when another writing skill needs the format. NOT for writing documents (write-doc) or analytical reports (write-report) or the code domain model (domain-modeling)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Terminology
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: write-doc
3
3
  description: "Write or edit documents that define or propose something: BRD, PRD, technical spec, integration guide, proposal, policy or risk procedure; English, Chinese or bilingual. Use automatically for drafting or revising these documents. Markdown by default; export when requested. NOT for analytical reports or writing up findings (write-report), ordinary chat replies (plain-language), learning style or saving preferences alone (distill-writing), performing an audit (compliance-audit), or WeChat articles (wechat-article-writer)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Write a document
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: write-report
3
3
  description: "Write or edit analytical reports from data, research, analysis or findings: payment, fraud, operational, performance, research, gap-analysis, audit, external assessment, management and Visa VARS reports. Use whenever asked to report results, write up findings, or turn analysis into a report, even without naming this skill. English, Chinese or bilingual; Markdown by default, export when requested. NOT for defining requirements, policies or proposals (write-doc), performing the underlying domain analysis or audit, chat-only answers (plain-language), or learning house style (distill-writing)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Write an analytical report
@@ -4,7 +4,7 @@ description: "Slash/explicit-only (/better-review). Single-agent adversarial rev
4
4
  disable-model-invocation: true
5
5
  dependencies:
6
6
  - engineering-runtime
7
- release-version: 0.48.0
7
+ release-version: 0.48.1
8
8
  ---
9
9
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
10
10
  # Better Review
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: e2e-test
3
3
  description: "Playwright end-to-end guidance for affected browser journeys, render health and presentation checks, with route manifests and sweeps for broader audits. Use when browser routes or user flows ship or change, or a Playwright test flakes. NOT for non-browser tests, defining what to test (ensure-coverage), the curated ALIVE/DEAD golden-path gate (golden-path), or CI workflow YAML (github-actions)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # E2E Testing Standard
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: engineering
3
3
  description: "Engineering conventions: feature-delivery priorities, focused verification and review, operational boundaries, and tracker routing. Standalone /engineering offers Global, Project, or Session setup and targeted resets for configured scopes; /engineering init keeps explicit project setup. Use when setting up AGENTS.md or CONTRIBUTING.md, saving or resetting engineering defaults, or before creating an engineering issue, spec, epic, ticket, or sub-issue on GitHub or Linear. Reads existing policy without writing during ordinary work. NOT the issue-to-PR workflow (resolve-issues), release execution (resolve-release), Git delivery (github-flow), or CI setup (github-actions)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Engineering
@@ -3,7 +3,7 @@ name: engineering-runtime
3
3
  description: Internal support package for shared Engineering Workflow executable behavior. Never select or invoke this package as a user capability.
4
4
  disable-model-invocation: true
5
5
  user-invocable: false
6
- release-version: 0.48.0
6
+ release-version: 0.48.1
7
7
  ---
8
8
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
9
9
  # Engineering Runtime
@@ -369,7 +369,7 @@
369
369
  "repository": "1aboveio/ai",
370
370
  "revision": "main"
371
371
  },
372
- "contentDigest": "3204ec23d0c79b0a5df8af2cf3a68a3bf839087b29969c74f5258ca8d156571b",
372
+ "contentDigest": "0ee641d7c1c90df5d1ca4d4f516f3aec0236ae224f2cfdf5e69a8d0023d0224f",
373
373
  "digestExcludes": []
374
374
  },
375
375
  {
@@ -382,7 +382,7 @@
382
382
  "repository": "1aboveio/ai",
383
383
  "revision": "main"
384
384
  },
385
- "contentDigest": "6e0d37af1ed2c9e38958d8ebb4f3c021491c2a8dd2fd12304d4b28159949b3c0",
385
+ "contentDigest": "b0c6b061b9d99a3fdf61ee41a3380986f8b0e6f687fc14158071ba5cfc4ad231",
386
386
  "digestExcludes": []
387
387
  },
388
388
  {
@@ -395,7 +395,7 @@
395
395
  "repository": "1aboveio/ai",
396
396
  "revision": "main"
397
397
  },
398
- "contentDigest": "a551b109b523dfd00d67402b38f130014207be98d2ccf524a768add85ab85911",
398
+ "contentDigest": "00afe10ecfc7fb382a3c9ddf7cfb1264eeeb003e935c3fd8eee09af7f0e6dc4c",
399
399
  "digestExcludes": []
400
400
  },
401
401
  {
@@ -408,7 +408,7 @@
408
408
  "repository": "1aboveio/ai",
409
409
  "revision": "main"
410
410
  },
411
- "contentDigest": "0d0a49fd2245eea13d6b994457e64450f7cec96b920c525138905fcfba5e2f44",
411
+ "contentDigest": "807efefc218519809541349ebc10358d37c5688d5d657fe2a58dc85e2a9aa055",
412
412
  "digestExcludes": []
413
413
  },
414
414
  {
@@ -421,7 +421,7 @@
421
421
  "repository": "1aboveio/ai",
422
422
  "revision": "main"
423
423
  },
424
- "contentDigest": "572b27835ce6883e3fbd8f7db6ba29a1c3a2e3a1217367bc08bf8cdce1f0ae9a",
424
+ "contentDigest": "efb97f0e66dec6c2d6894a1feb128892f6974d9aa71c83a29acabf22852f2228",
425
425
  "digestExcludes": []
426
426
  },
427
427
  {
@@ -434,7 +434,7 @@
434
434
  "repository": "1aboveio/ai",
435
435
  "revision": "main"
436
436
  },
437
- "contentDigest": "303f82fb4fd519446ecbb5b599ab179bec7ec74b2d160c0456ff841b97ff807d",
437
+ "contentDigest": "a54c0d8d50bd9de11b98118072a87f1fefb1930e4936eae4ad1c8d369125e80b",
438
438
  "digestExcludes": []
439
439
  },
440
440
  {
@@ -447,7 +447,7 @@
447
447
  "repository": "1aboveio/ai",
448
448
  "revision": "main"
449
449
  },
450
- "contentDigest": "b0823ca9b218d171039a5d86b3038afe6cbc9a0be96848e060ef6c198882ae5a",
450
+ "contentDigest": "2700f926acbfc82dec992a81f42373f5ac03d8e6cdfd9288e447e72e4215ca11",
451
451
  "digestExcludes": []
452
452
  },
453
453
  {
@@ -460,7 +460,7 @@
460
460
  "repository": "1aboveio/ai",
461
461
  "revision": "main"
462
462
  },
463
- "contentDigest": "90ae8a3116dff8510a5511ef58a15d6bd632eaa61ad192911399c8d2bd0c56a3",
463
+ "contentDigest": "a00c2848f686ee2d4775661f87c2569b4810480233f4a0649ca995f0bebdb2a8",
464
464
  "digestExcludes": []
465
465
  },
466
466
  {
@@ -473,7 +473,7 @@
473
473
  "repository": "1aboveio/ai",
474
474
  "revision": "main"
475
475
  },
476
- "contentDigest": "13df8c9fbfaeca374d1eccf278026515d3cefe05092693ad3789351982271c38",
476
+ "contentDigest": "27b87c7ac54bfc217ffe5c68fae0a9d9b1dd8619286c470ca721200bb6962bd8",
477
477
  "digestExcludes": []
478
478
  },
479
479
  {
@@ -486,7 +486,7 @@
486
486
  "repository": "1aboveio/ai",
487
487
  "revision": "main"
488
488
  },
489
- "contentDigest": "36fcee2a585b71c6b391a8d44a9378503f35715c83cd487c4b9e6fee35300ab5",
489
+ "contentDigest": "a67d55dda1c9278b16d192efe28d2827d2a1010b7c14bde8bf3ac10ce78adf13",
490
490
  "digestExcludes": []
491
491
  },
492
492
  {
@@ -499,7 +499,7 @@
499
499
  "repository": "1aboveio/ai",
500
500
  "revision": "main"
501
501
  },
502
- "contentDigest": "801d2c483d76803864eb4cb34e6e0981e1039eba4a9533e94ad6f9075416cb73",
502
+ "contentDigest": "15626fe123fbf537b89af3cb34349430fc1c76c4ad04e8853f6e761c7f45db30",
503
503
  "digestExcludes": []
504
504
  },
505
505
  {
@@ -512,13 +512,13 @@
512
512
  "repository": "1aboveio/ai",
513
513
  "revision": "main"
514
514
  },
515
- "contentDigest": "4cacea8ee67f05aabb5b16485e6093e6d2b5524ae25398fe28fefb8e6302bea7",
515
+ "contentDigest": "1bdafd5f8149b4020319869ae83c17734cec9c2c52f7dc28d5c672985ca73111",
516
516
  "digestExcludes": [
517
517
  "coherence/workflow.json"
518
518
  ]
519
519
  }
520
520
  ],
521
- "releaseIdentity": "9301ab0617c9f8d93c8e58cb6b37e3e3d487efdf24036c4c99a1defc08345e08",
521
+ "releaseIdentity": "446559a9feac423ab3c67e5b391ea300aeb1e5a80ec94a66a69062025e47a87a",
522
522
  "lifecycleAuthority": "native-skills-cli",
523
523
  "repairRecipe": {
524
524
  "id": "engineering-workflow-dependency-first",
@@ -2,7 +2,7 @@
2
2
  name: ensure-coverage
3
3
  description: "Define or audit behavior-first test criteria — ACs, required test levels, mock/integration/E2E policy — across three axes: breadth (Coverage Ledger), depth (over-mocking), presentation (perceivability of browser surfaces). NOT judging whether a single test is any good (test-quality), authoring browser tests (e2e-test), reviewing a PR (better-review), or delivering issues (resolve-issues)."
4
4
  disable-model-invocation: true
5
- release-version: 0.48.0
5
+ release-version: 0.48.1
6
6
  ---
7
7
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
8
  # Ensure Coverage
@@ -3,7 +3,7 @@ name: golden-path
3
3
  description: "Golden-path E2E: the short list of user journeys whose failure blocks a release, kept in a repo as one contract (golden-paths.json) with a generated GOLDEN_PATHS.md and a generated GitHub Actions workflow, and run against a local build or a deployed URL for an ALIVE/DEAD verdict. Use to set golden paths up in a repo ('init golden paths', 'add golden-path CI'), to migrate an older smoke.manifest.json or a hand-built smoke setup ('audit', 'migrate smoke'), to add, change, or remove a golden path, to ask 'is the build alive?' or run them before a PR or release, or when a change touches a flow listed in GOLDEN_PATHS.md. NOT for writing the Playwright specs themselves (e2e-test), deciding what a change must prove (ensure-coverage), or general workflow YAML (github-actions)."
4
4
  dependencies:
5
5
  - e2e-test
6
- release-version: 0.48.0
6
+ release-version: 0.48.1
7
7
  ---
8
8
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
9
9
  # Golden path
@@ -3,7 +3,7 @@ name: harness-runtime
3
3
  description: Internal import-only library shared by first-party engineering packages. Not a workflow skill; never select or invoke it as a user capability.
4
4
  disable-model-invocation: true
5
5
  user-invocable: false
6
- release-version: 0.48.0
6
+ release-version: 0.48.1
7
7
  ---
8
8
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
9
9
  # Harness Runtime
@@ -620,7 +620,8 @@ export function buildCatalogRequest({
620
620
  if (normalizedAvailable.available.length === 0) {
621
621
  return blocked(
622
622
  AGENT_CATALOG_BLOCK_CODES.CAPABILITIES_MISSING,
623
- 'no current-turn models were supplied; the harness must advertise its available models for this turn',
623
+ 'no current-turn models were supplied: the resolver input has no available[] entries; '
624
+ + 'collect verified host model and effort evidence before retrying; this does not establish that the harness lacks worker support',
624
625
  )
625
626
  }
626
627
  if (foregroundModel !== null && foregroundModel !== undefined && !nonEmptyString(foregroundModel)) {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: resolve-issues
3
- description: "Slash/explicit-only (/resolve-issues). Drive an issue, epic, or feature spec to reviewed, green PRs, one per issue, merged or handed back merge-ready: preflight, task map, exploration and a per-issue slice check, isolated implementers within live host capacity, then per issue its PR, independent better-review, CI, and queue/merge (or merge-ready hand-back) as soon as it is done. Asks once, at the end of preflight (target branch, merge mode, scheduler mode, plan) and resolves the worker roles' models as run metadata instead of asking, then never blocks on the human; small non-blocking problems collect in a dropbox, posted at the end as grouped ready-for-agent issues. /rush-issues is its no-questions shortcut. Do not auto-select. Use for whole-spec delivery, including high-risk work; risk changes model and validation depth, never the workflow. NOT for release work (resolve-release)."
3
+ description: "Slash/explicit-only (/resolve-issues). Drive an issue, epic, or feature spec to reviewed, green PRs, one per issue, merged or handed back merge-ready: preflight assessment with an explorer only for planning unknowns, a per-issue slice check, isolated implementers within live host capacity, then per issue its PR, independent better-review, CI, and queue/merge (or merge-ready hand-back) as soon as it is done. Asks once, at the end of preflight (target branch, merge mode, scheduler mode, plan) and resolves the worker roles' models as run metadata instead of asking, then never blocks on the human; small non-blocking problems collect in a dropbox, posted at the end as grouped ready-for-agent issues. /rush-issues is its no-questions shortcut. Do not auto-select. Use for whole-spec delivery, including high-risk work; risk changes model and validation depth, never the workflow. NOT for release work (resolve-release)."
4
4
  disable-model-invocation: true
5
5
  metadata:
6
6
  workflow-role: coordinator
@@ -8,7 +8,7 @@ dependencies:
8
8
  - better-review
9
9
  - golden-path
10
10
  - harness-runtime
11
- release-version: 0.48.0
11
+ release-version: 0.48.1
12
12
  ---
13
13
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
14
14
  # Resolve issues
@@ -54,7 +54,7 @@ after 2 fix rounds without a new low of open P0/P1 path rows; no fixed round cap
54
54
 
55
55
  ```text
56
56
  preflight: ready label -> model fills -> plan draft
57
- -> exploration -> size check (only scope or an open question holds a unit, with a split)
57
+ -> preflight assessment (optional explorer) -> size check (only scope or an open question holds a unit, with a split)
58
58
  -> one approval (target branch, merge mode, scheduler mode, plan)
59
59
  -> schedule runnable units within live host capacity:
60
60
  prepare a unit's workspace when its first worker is admitted (never all units up front)
@@ -77,9 +77,9 @@ Read each procedure right before its stage; never substitute your own.
77
77
 
78
78
  | Stage | Procedure |
79
79
  |---|---|
80
- | Preflight: ready label, models, plan draft, exploration, size check, approval; what any filed text may say | [references/preflight.md](references/preflight.md) ([Filed text](references/preflight.md#filed-text)) |
80
+ | Preflight: ready label, models, plan draft, assessment, size check, approval; what any filed text may say | [references/preflight.md](references/preflight.md) ([Filed text](references/preflight.md#filed-text)) |
81
81
  | Task plan shape and live board | [references/task-plan.md](references/task-plan.md) |
82
- | Exploration (preflight step 4) | [references/exploration.md](references/exploration.md) |
82
+ | Preflight assessment and optional exploration (step 4) | [references/exploration.md](references/exploration.md) |
83
83
  | Implementation loop and opening each PR | [references/implementation.md](references/implementation.md) |
84
84
  | Read-only warehouse canary | [references/canary.md](references/canary.md) |
85
85
  | Owned workspaces: plan, prepare, cleanup, recover, inventory | [references/workspaces.md](references/workspaces.md) |
@@ -105,7 +105,8 @@ Read each procedure right before its stage; never substitute your own.
105
105
  check. When a journey or case you run fails, copy its `NATIVE_FAILURE` line (or the failing step, error and
106
106
  evidence path) into the unit's plan row; an exit code alone is not a failure record.
107
107
  Leave code changes to workers so your attention stays on scheduling, and record each worker as the
108
- unit's `workerKind` (`implement`, `fix`, `review`). Exploration continues the run's one explorer. After a context compaction, read this file in
108
+ unit's `workerKind` (`implement`, `fix`, `review`). You own preflight findings;
109
+ delegate unresolved planning unknowns under [exploration.md](references/exploration.md#choose-the-owner). After a context compaction, read this file in
109
110
  full again before your next step: the summary keeps the run's state, not these rules. Fill
110
111
  free slots before starting your own work, stay within [expire.md](references/expire.md)'s limit, and send
111
112
  large output to files (read only the lines you need). Expect Pi's **Completions while busy: Steer active run**
@@ -149,12 +150,13 @@ Follow [preflight.md](references/preflight.md):
149
150
  efforts are run metadata, never a question.
150
151
  2. **Provisional target:** the default branch.
151
152
  3. **Plan draft:** one unit per issue, links, delivery mode; show the board.
152
- 4. **Exploration:** have one explorer record each unit's `slice` and,
153
- separately, its `proof`, in every run; reuse prior findings for units
153
+ 4. **Preflight assessment:** record each unit's `slice` and,
154
+ separately, its `proof`, yourself for clear work; use an explorer only
155
+ for concrete planning unknowns. Reuse prior findings for units
154
156
  whose evidence did not change
155
157
  ([exploration.md](references/exploration.md#reuse-first)).
156
158
  5. **Size check:** run `size-check.mjs` (exit 0; read `verdict`). On `hold` or `stop`, hold the listed
157
- units (their dependents wait, not started) and draft their splits (yours when none is drafted); on `exploration-unfinished`, continue the explorer.
159
+ units (their dependents wait, not started) and draft their splits (yours when none is drafted); on `exploration-unfinished`, complete the findings using step 4's owner routing.
158
160
  6. **Approval:** ask once for target, merge mode, scheduler mode, and plan;
159
161
  record the answers; plan each unit's branch, workspace, base, and lifecycle
160
162
  intent, and prepare a workspace only when its first worker is admitted
@@ -1,16 +1,44 @@
1
1
  # Exploration
2
2
 
3
- **One explorer per run, after the plan draft, records what sizes, orders, and
4
- blocks the units: behaviors, missing prerequisites, proof, line estimates,
5
- dependencies, contracts, and the questions that hold a unit.**
3
+ **Every run gets a coordinator-owned preflight assessment after the plan draft:**
4
+ behaviors, missing prerequisites, proof, line estimates, dependencies, contracts,
5
+ and the questions that hold a unit. A dedicated explorer is optional.
6
6
  In a one-unit run, leave `contracts`, `dependsOn`, and `stacksOn` empty.
7
7
 
8
- ## Spawn
8
+ ## Choose the owner
9
+
10
+ Read the issues, applicable repository guidance, and the few code or test paths
11
+ needed to check the plan. For clear, bounded work, write the findings yourself.
12
+ The findings are planning state, not product code; keep detailed code discovery
13
+ with implementers.
14
+
15
+ Delegate when a concrete unknown could change the plan: uncertain cross-unit
16
+ dependencies or contracts, unclear boundaries or likely splitting, or an unfamiliar
17
+ validation setup. Name the unknown and the affected units in the explorer's brief.
18
+ Multiple units or a high-risk label alone do not require an explorer; unresolved
19
+ planning uncertainty does. An unanswered product decision stays an open question,
20
+ not an invitation for the explorer to invent a requirement.
21
+
22
+ Use the same record and size check for both paths. Resolve each unit's planning
23
+ unknowns or record its open human decision before approval. On later scope or base
24
+ changes, apply this routing again only to affected units.
25
+
26
+ Resolve the assessment target to an exact commit before reading code: initially
27
+ the provisional target, then the approved target after a branch change. Record
28
+ that SHA as findings `base`; use it explicitly for reuse checks and any explorer
29
+ checkout. The coordinator's current branch is not evidence of the assessment target.
30
+
31
+ ## Optional explorer
32
+
33
+ Use at most one explorer at a time per run, on the fleet `explore` row, within
34
+ live host capacity. Reuse that explorer for further investigation when available.
35
+ Give it only the affected units and unknowns. While it writes findings, it owns
36
+ that file exclusively; collect its result before the coordinator updates it.
9
37
 
10
38
  | Field | Value |
11
39
  |---|---|
12
40
  | Model | The explorer fill ([preflight.md](preflight.md#1-model-slots)) |
13
- | Workspace | Read-only checkout of the provisional target; write only the findings directory |
41
+ | Workspace | Read-only checkout at the assessment target SHA; write only the findings directory |
14
42
  | Task plan | Absolute `task-plan.json` path; its unit ids key the findings |
15
43
  | Prior findings | Newest `.resolve-issues/rush/*/exploration/findings.json` for the same spec locator, if any |
16
44
  | Deadline | 15 minutes, plus 1 minute per unit beyond 4 |
@@ -18,15 +46,23 @@ In a one-unit run, leave `contracts`, `dependsOn`, and `stacksOn` empty.
18
46
 
19
47
  ## Reuse first
20
48
 
21
- **When prior findings exist, explore only the units whose evidence changed.**
22
- Run, before spawning, and give the explorer its output:
49
+ **Reuse requires unchanged requirements as well as unchanged code evidence.**
50
+ First compare each unit's current criteria, dependency contracts, relevant guidance,
51
+ and recorded decisions with the prior assessment. Reassess affected units even if
52
+ the helper below says `reuse`; it checks Git evidence paths, not those inputs.
53
+ When the prior inputs cannot be established, reassess that unit.
54
+
55
+ Run the code-evidence check against the exact assessment target, not the caller's
56
+ `HEAD`; include the output and any forced reassessments in an explorer brief:
23
57
 
24
58
  ```bash
25
59
  node <skill-base-dir>/scripts/findings-reuse.mjs \
26
- --prior <prior findings.json> --units <this run's unit ids, comma-separated>
60
+ --prior <prior findings.json> --units <this run's unit ids, comma-separated> \
61
+ --head <assessment-target-SHA>
27
62
  ```
28
63
 
29
- - `reuse`: copy the entry unchanged, with the new `base`.
64
+ - `reuse`: copy the entry unchanged only when the non-code inputs above also
65
+ match, with the new `base`.
30
66
  - `recheck`: re-explore the entry; its `changed` files are where to look.
31
67
  - `new`: explore from scratch.
32
68
 
@@ -34,7 +70,9 @@ Example: a resumed run starts after earlier units merged `src/charge/`; only
34
70
  the two units whose evidence names `src/charge/` are re-explored, the other
35
71
  four are copied.
36
72
 
37
- ## Brief
73
+ ## Assessment record
74
+
75
+ The coordinator and any delegated explorer use these rules:
38
76
 
39
77
  1. **Scaffold, then save one unit at a time.** Keep an existing
40
78
  `findings.json`; otherwise create it with `version: 2`, the `base` SHA,
@@ -106,7 +144,7 @@ four are copied.
106
144
  journey; `local` runs that Charge journey script on an owned emulator,
107
145
  not the repository's default phone journey.
108
146
  - Findings saved before `local` and `skill` existed are unfinished:
109
- continue the explorer to add them, even when reusing the rest.
147
+ add them before the size check, even when reusing the rest.
110
148
  - `physical`: evidence only a real device gives; else empty.
111
149
 
112
150
  - `groups` and `setups` (only when `slice.newProductBehaviorCount` is
@@ -193,10 +231,14 @@ it then.
193
231
 
194
232
  ## Completion
195
233
 
196
- Confirm the findings exist, the model read-back matches, and no product source
197
- changed. Never edit the findings yourself. Run the size check; on `exploration-unfinished` or
198
- tool failures, continue the explorer with the errors. At the deadline, have it
199
- save what it has and stop; continue it in the same directory for the units
200
- still empty while size-check problems plus empty units reach new lows, then follow
201
- [expire.md](expire.md). Never skip exploration;
202
- reuse is not skipping.
234
+ Confirm the findings exist and no product source changed. For delegated work,
235
+ also confirm the model read-back matches and inspect the result. Run the size
236
+ check; `exploration-unfinished` means complete or repair the findings, not spawn
237
+ a worker automatically. Correct a missing field yourself when the evidence is
238
+ clear; continue the explorer only for unresolved investigation.
239
+
240
+ At an explorer's deadline, have it save what it has and stop. Inspect its partial
241
+ findings, complete clear entries yourself, and continue investigation only for
242
+ remaining unknowns while size-check problems plus empty units reach new lows;
243
+ then follow [expire.md](expire.md). Finish the fleet `explore` row once the
244
+ assessment and size check are complete, even when no explorer was needed.
@@ -76,7 +76,7 @@ the same work. A passing setup check is not a substitute for the blocked behavio
76
76
  No additional report or result schema is required.
77
77
 
78
78
  Have the implementer treat findings as leads, find its own code, and report
79
- any `product`, `scope`, `design`, or `approval` question the explorer missed and any
79
+ any `product`, `scope`, `design`, or `approval` question the assessment missed and any
80
80
  human-only proof. Report each question in the result's `decisionNeeded`
81
81
  ([expire.md](expire.md#decide-before-you-defer)); add each proof as a
82
82
  handback step. Never edit `findings.json`.
@@ -11,10 +11,22 @@ until step 6.
11
11
  node <skill-base-dir>/scripts/plan-sync.mjs --find-run --runs .resolve-issues/rush --issue <owner/name#123>
12
12
  ```
13
13
 
14
- When it prints a directory, resume that run (`next-actions.mjs --run <dir> --resume` with
15
- [fresh capacity](implementation.md#live-capacity))
16
- instead of starting another; its plan picks up whatever the tree gained
17
- since. It exits 0 whether or not it found a run: no run prints nothing on stdout
14
+ When it prints a directory, reuse that run instead of starting another. Before
15
+ calling the scheduler, reload its plan, decisions and standing orders. Refresh the
16
+ source requirements as described under [issue-tree sync](task-plan.md#issue-tree-sync)
17
+ and resolve the recorded target to its current exact SHA. Apply
18
+ [assessment reuse](exploration.md#reuse-first) against those inputs.
19
+
20
+ If assessment was interrupted, findings are incomplete, or affected requirements or
21
+ target evidence changed, complete step 4 and rerun step 5 for those units before
22
+ scheduling them. Finish any outstanding step 6 approval once; preserve choices
23
+ already approved. A saved size stop remains held until reassessment clears it or
24
+ its `runWhole` recommendation is accepted. Do not treat a scheduler action as proof
25
+ that assessment or approval finished.
26
+
27
+ Then resume with `next-actions.mjs --run <dir> --resume` and
28
+ [fresh capacity](implementation.md#live-capacity); its plan picks up whatever the
29
+ tree gained since. The run finder exits 0 whether or not it found a run: no run prints nothing on stdout
18
30
  (`--json`: `{"found":false}`). Example: `/rush-issues #12` finds the run whose saved tree holds
19
31
  #12 and resumes it, never a second run beside it.
20
32
 
@@ -28,7 +40,7 @@ The script exits 0 whenever it ran (2 if it could not); read `outcome` in its JS
28
40
 
29
41
  - **`ready`:** continue. An open issue is work, whatever its sub-issues
30
42
  say: each `rollups` entry (open, every sub-issue closed) is a unit; the
31
- explorer records what is left, or that nothing is, and then the handback
43
+ assessment records what is left, or that nothing is, and then the handback
32
44
  says "close #N". Example: held #40's filed prerequisite #41 closed;
33
45
  #40 is a rollup and stays a unit.
34
46
  - **`unlabeled`:** continue as on `ready`, and record the `missing` issues for
@@ -78,9 +90,11 @@ posts them; they join this run's end-of-run review
78
90
 
79
91
  ## 1. Model slots
80
92
 
81
- Write this turn's host evidence to a temporary JSON file and run the fast path
82
- ([shared-modules.md](shared-modules.md#model-slots)); record its fills by exact id
83
- and effort. The skill names the roles — implementer, explorer, diagnoser,
93
+ Follow [model slots](shared-modules.md#model-slots): on Pi, inspect the live native
94
+ catalog first after checking task overrides and authoritative host preferences;
95
+ use the portable resolver when native role resolution is unavailable or cannot
96
+ validate either exact request. Record the actual fills by
97
+ exact id and effort. The skill names the roles — implementer, explorer, diagnoser,
84
98
  reviewer — and the harness agent catalog chooses the models, so rank nothing and
85
99
  copy nothing from a ladder. The fills are run metadata: show each role's model
86
100
  and effort on the board and never ask which model should implement. A model the
@@ -92,14 +106,23 @@ add the repository's deterministic domain checks and review depth, never change
92
106
  the workflow or re-choose the model.
93
107
 
94
108
  Pass a pinned implementer (`implementer=<id[@effort]>` in the invocation) as
95
- `--implementer`. Any `ok: false` result ends the run at preflight with its `code`
96
- and `reason`, starting nothing: `pinned-implementer-unavailable` means the pinned
97
- model is unavailable and no other implementer is substituted, and
98
- `catalog-unavailable` or `capabilities-missing` means this host cannot resolve
99
- roles yet. Never revive the old picker or reuse an earlier run's pick.
109
+ `--implementer` on the portable path. A declined result stops preflight with its
110
+ `code` and `reason`, starting nothing: `pinned-implementer-unavailable` means the
111
+ pinned model is unavailable and no other implementer is substituted;
112
+ `catalog-unavailable` means the portable resolver could not be invoked.
113
+ `capabilities-missing` means its input lacks model evidence: repair an omitted
114
+ field from current host evidence and retry, or report precisely what could not
115
+ be obtained. It does not establish a missing harness capability. Never revive
116
+ the old picker or reuse an earlier run's pick.
100
117
  Example: `/rush-issues 1aboveio/ai#1545 implementer=gpt-6-luna@high` on a host
101
118
  whose catalog does not offer `gpt-6-luna` stops at preflight and starts nothing.
102
119
 
120
+ **Catalog limitation:** optional exploration skips the worker, not catalog
121
+ resolution. Both paths still require all four fills, including
122
+ the explorer, even for coordinator-only assessment. Report a missing explorer as
123
+ a catalog block; do not extract other fills from a declined response or substitute
124
+ a model. Explorer-independent resolution needs a supported upstream protocol.
125
+
103
126
  ## 2. Provisional target
104
127
 
105
128
  Fetch remote heads; record the default branch as `targetBranch`.
@@ -118,11 +141,13 @@ Example: epic #12's #20 (signed release and go/no-go) and #21
118
141
  (physical acceptance) stay out of the plan; the run ends when its code units
119
142
  land instead of waiting on them.
120
143
 
121
- ## 4. Explore
144
+ ## 4. Assess the plan
122
145
 
123
- Run [exploration.md](exploration.md) on the provisional target, with any
124
- prior findings for the same spec. On tool failures or a size-check `exploration-unfinished` verdict,
125
- continue the explorer with the errors. Add the links the findings show.
146
+ Follow [exploration.md](exploration.md#choose-the-owner) on the provisional
147
+ target, reusing prior findings for the same spec. Write findings yourself for
148
+ clear work; delegate concrete planning unknowns to an optional explorer.
149
+ On tool failures or `exploration-unfinished`, complete the affected findings
150
+ using the same owner routing. Add the links the findings show.
126
151
 
127
152
  ## 5. Size check
128
153
 
@@ -154,7 +179,7 @@ by row 1 of [Never block on the human](#never-block-on-the-human).
154
179
  | `ok`, `warn` | Continue |
155
180
  | `hold` | Hold the `held` units (their dependents wait, not started); start the `runnable` units |
156
181
  | `stop` | Run-wide failure or every unit held; draft the held units' splits |
157
- | `exploration-unfinished` | Continue the explorer with the error |
182
+ | `exploration-unfinished` | Complete the findings using step 4's owner routing |
158
183
  | exit 2 | Fix the plan or command |
159
184
 
160
185
  Only scope and open questions hold a unit; proof only warns. Add each
@@ -285,7 +310,7 @@ Example: `/resolve-issues` answered "run the rest" files nothing;
285
310
  prerequisites keeps its unit, now depending on them.
286
311
  Example: #30 splits into #50 and #51, so the sync adds both, drops 30,
287
312
  and unit 34, `blocked_by` #30, now waits on 50 and 51.
288
- 4. Continue the explorer for the new units only; rerun the size check.
313
+ 4. Assess the new units only using step 4's owner routing; rerun the size check.
289
314
  5. Split a still-held slice again only while splitting makes progress: its
290
315
  largest slice is smaller than the one before.
291
316
  Example: a 7,287-line unit split into 3,455 and 2,150 lines; a held
@@ -348,16 +373,16 @@ in one interaction, with the native single-choice tool when there is one:
348
373
 
349
374
  Record each answer in `decisions`, then:
350
375
 
351
- - New target: fetch it, continue the explorer to recheck the findings, rerun
376
+ - New target: fetch it, reassess affected findings using step 4's owner routing, rerun
352
377
  the size check; ask again only if it worsens to `hold` or `stop`.
353
- - Trim: drop the scope, continue the explorer to remove its questions and
378
+ - Trim: drop the scope, remove its findings, questions and
354
379
  handback items, rerun the size check.
355
380
  - File the splits: follow [File a split](#file-a-split); ask again only if
356
381
  the size check returns `stop`.
357
382
  - Move to later: mark the units `blocked` (`blockedReason: human-decision`, `humanItem: 1`, the human's words as `humanNeed`); they stay in
358
383
  this run's plan and resume with it (one run per spec). Never start a
359
384
  separate follow-up run for the same spec.
360
- - Answer: record it, continue the explorer to set the question
385
+ - Answer: record it, set the question
361
386
  `resolved: true`, rerun the size check.
362
387
  - Run the rest: mark held units `blocked` (`blockedReason: size-hold`) with the split path;
363
388
  their dependents stay not started (`pending`).
@@ -11,7 +11,8 @@ restate its rules in the brief beyond the two below.
11
11
  - Reviewer model: a different id from the implementer's
12
12
  ([preflight.md](preflight.md#1-model-slots)). Launch the reviewer with the
13
13
  plan's recorded reviewer fill — its `launch`, `instructions`, `selection` and
14
- `catalogDigest` ([task-plan.md](task-plan.md#worker-selection-on-resume)) — as
14
+ native `catalogRevision` or portable `catalogDigest`
15
+ ([task-plan.md](task-plan.md#worker-selection-on-resume)) — as
15
16
  structured launch arguments, never as brief text and never a model id
16
17
  hardcoded here. On Pi that `launch` is what the live role resolver receives,
17
18
  `{ role }` unless an explicit task override or this host's own preference