@manhd_d/ai-harness 0.8.0 → 0.10.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.
Files changed (60) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/CONTRIBUTING.md +9 -0
  3. package/README.md +35 -70
  4. package/adapters/react-native/adapter.yaml +4 -2
  5. package/adapters/react-native/checks/verification.yaml +24 -0
  6. package/adapters/react-native/evals/cases.json +20 -0
  7. package/adapters/react-native/rules.md +3 -0
  8. package/adapters/react-native/skills/harness-react-native-behavior-testing/SKILL.md +48 -0
  9. package/adapters/react-native/skills/harness-react-native-screen-delivery/SKILL.md +53 -0
  10. package/adapters/react-nextjs/adapter.yaml +4 -2
  11. package/adapters/react-nextjs/checks/verification.yaml +24 -0
  12. package/adapters/react-nextjs/evals/cases.json +20 -0
  13. package/adapters/react-nextjs/rules.md +3 -0
  14. package/adapters/react-nextjs/skills/harness-react-nextjs-behavior-testing/SKILL.md +48 -0
  15. package/adapters/react-nextjs/skills/harness-react-nextjs-feature-delivery/SKILL.md +55 -0
  16. package/capabilities/product/capability.json +1 -1
  17. package/capabilities/product/workflows/change-impact-analysis.md +4 -0
  18. package/capabilities/product/workflows/document-driven.md +6 -1
  19. package/capabilities/product/workflows/idea-driven.md +6 -1
  20. package/capabilities/uiux/capability.json +1 -1
  21. package/capabilities/uiux/workflows/docs-to-figma.md +7 -0
  22. package/capabilities/uiux/workflows/idea-to-figma.md +7 -0
  23. package/cli/artifacts.js +168 -0
  24. package/cli/environment.js +9 -10
  25. package/cli/harness.js +13 -3
  26. package/cli/main.js +9 -2
  27. package/cli/project-config.js +11 -0
  28. package/cli/readiness.js +3 -1
  29. package/core/checks/verification.json +12 -0
  30. package/core/evals/cases.json +30 -0
  31. package/core/workflows/artifact-contract.md +53 -0
  32. package/core/workflows/project-setup.md +2 -0
  33. package/core/workflows/spec-to-code.md +5 -0
  34. package/docs/README.md +41 -0
  35. package/docs/adapters.md +4 -2
  36. package/docs/agent-handoffs.md +4 -0
  37. package/docs/architecture.md +9 -0
  38. package/docs/artifact-contract.md +197 -0
  39. package/docs/change-readiness.md +6 -0
  40. package/docs/cli.md +15 -3
  41. package/docs/documentation-workflows.md +7 -0
  42. package/docs/end-to-end-workflow.md +4 -0
  43. package/docs/examples/fullstack-web.md +4 -0
  44. package/docs/examples/react-native-app.md +4 -0
  45. package/docs/frontend-mobile.md +76 -0
  46. package/docs/getting-started.md +50 -94
  47. package/docs/harness-maintenance.md +1 -0
  48. package/docs/i18n/README.vi.md +53 -0
  49. package/docs/project-configuration.md +7 -0
  50. package/docs/skill-matrix.md +8 -4
  51. package/docs/tool-setup/README.md +5 -0
  52. package/docs/versioning.md +18 -0
  53. package/harness.yaml +1 -1
  54. package/integrations/mcp/README.md +5 -0
  55. package/package.json +1 -1
  56. package/templates/AGENTS.md +2 -0
  57. package/templates/artifacts.json +6 -0
  58. package/templates/integrations.json +4 -0
  59. package/templates/openspec/artifact-impact.json +5 -0
  60. package/templates/openspec/design.md +3 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased — Project artifact contracts
4
+ - Add project-owned input/output/storage/canonical/source-write contracts and dynamic host connection declarations; seed/preserve and validate them before writes.
5
+ - Add read-only artifacts reports/setup storage questions, local docs routing and explicit external template handoffs without network calls or fallback copies.
6
+ - Connect idea/document/UI flows and spec-driven artifact-impact readiness/maintenance; Product 1.3.0 and UIUX 1.0.1.
7
+ - Preserve legacy defaults when unconfigured; add path/policy/graph/preflight/rollback/routing tests, package smoke and unscored behavior scenarios.
8
+
9
+ ## Unreleased — README languages
10
+ - Make the concise root README English, add a Vietnamese translation and a language selector on both pages.
11
+ - Preserve English technical terms in the Vietnamese overview and keep commands/setup links aligned.
12
+ - Document how to add real translations; localized README files ship through the existing docs/ allowlist.
13
+
14
+ ## Unreleased — README capabilities and coding tools
15
+ - Explain Product/Architecture/Delivery/Dev/QA outcomes in a compact role-oriented table.
16
+ - Add a coding-tool table with linked installation/setup recipes for Codex, Claude Code, Cursor, Copilot and Gemini CLI; retain one-command project installation.
17
+
18
+ ## Unreleased — Simpler onboarding
19
+ - Consolidate first-use documentation into a one-command README and a copyable AI task; keep setup and model preferences optional.
20
+ - Add docs/README.md for advanced guides and examples, preserving frontend/mobile onboarding and environment ownership from the latest main.
21
+ - Verify documentation discovery through the index. No CLI, module or consumer schema changes.
22
+
23
+ ## Unreleased — Frontend/mobile coding and onboarding
24
+ - Simplify init/host onboarding and surface current CLI flags in the command table.
25
+ - Add focused React/Next.js feature/testing and React Native screen/testing skills with examples, quality and handoffs; each adapter module advances to 1.2.0.
26
+ - Connect manifests, discovery, manual checks/unscored scenarios, skill matrix, stack examples and package/install/update tests. No application runner, library migration or native verification claim.
27
+
28
+
3
29
  ## Unreleased — Agent preferences and release regression
4
30
  - Add provider-agnostic project-owned agents.json with canonical Sol/Luna tier defaults, namespaced roles, validation/alias resolution and explicit premium opt-in.
5
31
  - Add non-interactive init presets and read-only setup host plans; preserve custom config and legacy snapshots. No native config writes, agent runtime or usage claims.
@@ -84,6 +110,20 @@
84
110
  - Check release metadata consistency and establish single-release-PR version discipline; retain v0.6.0 until a dedicated release PR.
85
111
 
86
112
 
113
+ ## [0.10.0](https://github.com/manh0303/ai-harness/compare/v0.9.0...v0.10.0) (2026-10-13)
114
+
115
+
116
+ ### Features
117
+
118
+ * add project artifact and integration contracts ([fcc1728](https://github.com/manh0303/ai-harness/commit/fcc172860988692c0f8a9b2d3bb96b3214e35d5f))
119
+
120
+ ## [0.9.0](https://github.com/manh0303/ai-harness/compare/v0.8.0...v0.9.0) (2026-10-13)
121
+
122
+
123
+ ### Features
124
+
125
+ * complete onboarding and web mobile coding skills ([4e26a1d](https://github.com/manh0303/ai-harness/commit/4e26a1de1d5c2c95a6b4a6c610ebc4d6ccad61f6))
126
+
87
127
  ## [0.8.0](https://github.com/manh0303/ai-harness/compare/v0.7.0...v0.8.0) (2026-10-12)
88
128
 
89
129
 
package/CONTRIBUTING.md CHANGED
@@ -15,3 +15,12 @@ diff, not only generated hashes. Open a PR; do not merge automatically or enable
15
15
 
16
16
  Use original instructions or properly licensed attributed content. Do not copy proprietary workspace
17
17
  details or third-party skill source into this repository. This repository is released under the MIT License; see LICENSE. Only contribute material you own or are authorized to distribute under compatible terms.
18
+
19
+ ## README translations
20
+
21
+ README.md is the English source; translations live in docs/i18n/README.<language-code>.md.
22
+ Keep sections, capabilities, commands and setup links aligned with the source. Preserve technical
23
+ terms such as Requirements, Code, Test, Review, docs, spec, workflow, agent and skill.
24
+ Add a native-language link to every README selector only when its translation exists.
25
+ For example, use es for Español, fr for Français, zh-CN for 简体中文 or ja for 日本語.
26
+ Translation changes do not translate the linked guides automatically.
package/README.md CHANGED
@@ -1,88 +1,53 @@
1
1
  # AI Harness
2
2
 
3
- **Bộ quy tắc, skills và workflows tái sử dụng để AI hỗ trợ phát triển phần mềm theo quy trình _Spec → Code → Test → Review_.**
3
+ **English** · [Tiếng Việt](docs/i18n/README.vi.md)
4
4
 
5
- AI Harness cài context vào từng repository qua CLI `aih`. Có thể kết hợp các technology adapters và capabilities theo nhu cầu; không phụ thuộc một IDE hay mô hình AI cụ thể.
5
+ **Reusable project instructions for AI-assisted development: Requirements → Code → Test → Review.**
6
6
 
7
- > Yêu cầu **Node.js 22+**. CLI không tự chạy LLM, viết code, phê duyệt tài liệu, merge PR hoặc deploy.
7
+ Install Harness in your project, then give tasks to your preferred AI coding tool.
8
8
 
9
- ## Cài đặt và dùng nhanh
9
+ ## What can it help with?
10
10
 
11
- ```bash
12
- npm install -g @manhd_d/ai-harness
13
-
14
- # Chạy trong một project đã tồn tại
15
- aih init --adapters java-spring
16
- aih check
17
- aih setup
18
- ```
19
-
20
- Tiếp theo, ghi stack, nghiệp vụ và lệnh test vào `.harness/local.md`; mở project trong AI IDE và yêu cầu assistant đọc `AGENTS.md` trước khi làm việc. Bạn giao task bình thường, AI đọc skill liên quan và báo cáo test thực chạy.
21
-
22
- Thêm `--capabilities product` khi cần tài liệu BA; `aih new-doc prd-lite` tạo template, `aih new-change <id>` tạo spec nháp khi cần. Không bắt mọi task tạo đủ tài liệu. Xem [Getting started](docs/getting-started.md) và [CLI reference](docs/cli.md).
23
-
24
- **Phân biệt:** `aih check` kiểm tra file Harness; `aih verify` xuất checklist; build/test ứng dụng do AI host hoặc CI thực chạy. CLI không bảo đảm AI sẽ tuân thủ hướng dẫn; xem [đánh giá hành vi](evals/README.md).
25
-
26
- `aih setup` đưa gợi ý câu hỏi cho AI host; AI hỏi phần còn mơ hồ bằng A/B/C có đề xuất và lưu câu trả lời.
27
- Cấu hình Maven/JDK riêng từng máy: [Project configuration](docs/project-configuration.md).
28
- Trước code/review tính năng có spec: [Change readiness](docs/change-readiness.md).
29
-
30
-
31
- Coding convention cho dự án mới/maintain: [Project conventions](docs/project-conventions.md).
32
- AI đọc cấu trúc, tìm common phù hợp trước khi tạo mới và review ranh giới module.
33
-
34
- Agent/model preferences: [Agent configuration](docs/agent-configuration.md).
35
- `aih init` seeds project-owned `.harness/agents.json`; `aih setup --host codex` gives a read-only plan.
36
-
37
- ## Thành phần
38
-
39
- | Nhóm | Hỗ trợ |
11
+ | Workflow | Outputs |
40
12
  | --- | --- |
41
- | **Core** | Rules, agent roles, skills, workflows, review & verification |
42
- | **Adapters** | Java Spring Boot, React/Next.js, React Native, Python AI/RAG, Kubernetes, Astro |
43
- | **Capabilities** | Product/BA/PO, Architecture/SA, Delivery/PM, UI/UX & Figma, DevOps |
44
- | **OpenSpec** | Template cho proposal, design, tasks và spec có review |
13
+ | **BA / PO — Business analysis & product** | Turn ideas or existing docs into BRD, PRD, SRS, user stories and acceptance criteria. |
14
+ | **SA — Solution architecture** | Architecture, non-functional requirements, technical decisions and change-impact analysis. |
15
+ | **PM — Delivery planning** | Delivery phases, dependencies, risks and scope changes. |
16
+ | **Dev / QA — Implementation & testing** | Feature implementation, debugging, tests and code review following project conventions. |
17
+ | **UI/UX & DevOps** | UI design, CI/CD, deployment and operations guidance when needed. |
45
18
 
46
- Bạn chỉ chọn module cần dùng, ví dụ `aih init --adapters astro` cho website và công cụ nhỏ, nhẹ. Xem [Astro adapter](adapters/astro/README.md).
19
+ Stack adapters: Spring Boot, React/Next.js, React Native/Expo, Python AI/RAG, Astro and Kubernetes.
20
+ Select only what you need; small tasks do not require a full set of docs or a spec. [Choose your stack & modules](docs/getting-started.md).
47
21
 
48
- BA → PO → SA → PM → Dev/QA: [Solution workflow](docs/solution-workflow.md).
49
- Setup Codex, Claude Code, Cursor, Copilot, Gemini CLI: [Coding tools](docs/tool-setup/README.md).
22
+ ## Where can you use it?
50
23
 
51
- ## Hai luồng làm việc
24
+ | AI coding tool | Usage | Guide |
25
+ | --- | --- | --- |
26
+ | **Codex** | CLI or IDE extension | [Install & setup](docs/tool-setup/codex.md) |
27
+ | **Claude Code** | Run `claude` in the project terminal | [Install & setup](docs/tool-setup/claude-code.md) |
28
+ | **Cursor** | Open the project and use Agent | [Install & setup](docs/tool-setup/cursor.md) |
29
+ | **GitHub Copilot** | IDE Agent or Copilot CLI | [Install & setup](docs/tool-setup/copilot.md) |
30
+ | **Gemini CLI** | Run `gemini` in the project terminal | [Install & setup](docs/tool-setup/gemini-cli.md) |
52
31
 
53
- - **Idea-driven:** Ý tưởng → thảo luận/nghiên cứu → BRD/PRD/SRS → UI/UX → spec → code.
54
- - **Document-driven:** BRD/PRD/SRS/Confluence đã có → phân tích gap → technical spec → code.
32
+ Harness installs instructions; your AI tool executes the work. Follow each guide for tool-specific instruction loading.
55
33
 
56
- Chi tiết: [Documentation workflows](docs/documentation-workflows.md) · [Confluence integration](integrations/confluence/README.md).
34
+ ## Quick start
57
35
 
58
- ## Tài liệu
36
+ Requires **Node.js 22+** and an AI coding tool above. Run in your project directory:
59
37
 
60
- Nâng cấp chính AI Harness: [Quy trình bảo trì và ma trận ảnh hưởng](docs/harness-maintenance.md).
38
+ ```bash
39
+ npx --yes @manhd_d/ai-harness init --detect
40
+ ```
61
41
 
62
- | Mục đích | Hướng dẫn |
63
- | --- | --- |
64
- | Bắt đầu | [Getting started](docs/getting-started.md) |
65
- | Phát triển end-to-end | [Full SDLC](docs/end-to-end-workflow.md) · [Agent handoffs](docs/agent-handoffs.md) |
66
- | Tra cứu kỹ năng | [Skill matrix](docs/skill-matrix.md) · [CLI reference](docs/cli.md) |
67
- | Tài liệu sản phẩm | [Idea-driven example](docs/examples/idea-driven-project.md) · [Document-driven example](docs/examples/document-driven-project.md) |
68
- | Ví dụ backend/full-stack | [Spring Boot API](docs/examples/spring-boot-api.md) · [Spring + Next.js](docs/examples/fullstack-web.md) |
69
- | Ví dụ mobile/AI | [React Native](docs/examples/react-native-app.md) · [Python AI/RAG](docs/examples/ai-rag-service.md) |
70
- | Micro-tools/website | [Astro micro-tools](docs/examples/astro-micro-tools.md) |
71
- | Phát hành npm | [Release guide](docs/npm-release.md) · [Changelog](CHANGELOG.md) |
42
+ Open your AI tool in the same project and send:
72
43
 
73
- ## Kiểm tra và cập nhật
44
+ > Read AGENTS.md, inspect the project and record relevant context in .harness/local.md.
45
+ > Implement: [describe your task]. Run appropriate tests and report the results.
74
46
 
75
- ```bash
76
- # Trong repository AI Harness (maintainer)
77
- npm test
78
- npm run validate
79
- npm run test:package
80
-
81
- # Nâng CLI global, rồi cập nhật snapshot trong project
82
- npm install -g @manhd_d/ai-harness@latest
83
- aih update --dry-run
84
- aih update
85
- aih check
86
- ```
47
+ Give tasks normally; you do not need to invoke each agent or skill, or open a chat for each role.
48
+ If `--detect` cannot identify the stack, [select modules explicitly](docs/getting-started.md).
49
+ `aih check` checks Harness files; application correctness requires project tests and review.
50
+
51
+ [Getting started](docs/getting-started.md) · [Docs & examples](docs/README.md) · [Input/output & integrations](docs/artifact-contract.md) · [Model/agent configuration](docs/agent-configuration.md)
87
52
 
88
- **License:** [MIT](LICENSE). GitHub source có thể private; package `@manhd_d/ai-harness` được phát hành công khai qua npm.
53
+ [Contributing](CONTRIBUTING.md) · [Harness maintenance](docs/harness-maintenance.md) · [MIT](LICENSE).
@@ -21,9 +21,11 @@
21
21
  ],
22
22
  "skills": [
23
23
  "harness-react-native-offline-sync",
24
- "harness-react-native-device-permissions"
24
+ "harness-react-native-device-permissions",
25
+ "harness-react-native-screen-delivery",
26
+ "harness-react-native-behavior-testing"
25
27
  ],
26
28
  "verification": "checks/verification.yaml",
27
29
  "evaluation": "evals/cases.json",
28
- "module_version": "1.1.0"
30
+ "module_version": "1.2.0"
29
31
  }
@@ -37,6 +37,30 @@
37
37
  "Configured lint/type/build/test and boundary results, or explicit manual review limits"
38
38
  ],
39
39
  "execution": "manual"
40
+ },
41
+ {
42
+ "id": "feature-slice",
43
+ "title": "Review route/screen, data/state and existing public API fit",
44
+ "command": [],
45
+ "when_file": null,
46
+ "evidence": [
47
+ "AC to route/screen, interaction and API/state mapping",
48
+ "Reused component/client/form/router APIs and justified new code",
49
+ "Validation, loading/error/pending states and stale/account response handling"
50
+ ],
51
+ "execution": "manual"
52
+ },
53
+ {
54
+ "id": "behavior-evidence",
55
+ "title": "Review actual behavior checks and environment limits",
56
+ "command": [],
57
+ "when_file": null,
58
+ "evidence": [
59
+ "AC-linked component/integration results and simulated boundaries",
60
+ "Separate JS, iOS/Android build and simulator/device evidence",
61
+ "Confirmed scripts, actual results and owner for unavailable checks"
62
+ ],
63
+ "execution": "manual"
40
64
  }
41
65
  ]
42
66
  }
@@ -30,6 +30,26 @@
30
30
  "Reports Android or JS results actually obtained and explicitly marks unavailable iOS verification"
31
31
  ],
32
32
  "critical": true
33
+ },
34
+ {
35
+ "id": "screen-slice",
36
+ "prompt": "Add profile editing to a bare React Native app using its existing navigator, theme, query client and fields. Logout may occur while saving. Do not add dependencies; iOS access is unavailable.",
37
+ "criteria": [
38
+ "Reuses actual navigator/theme/client/form APIs without Expo or competing wrappers",
39
+ "Handles pending/validation/expiry/back and previous-account asynchronous data boundaries",
40
+ "Maps the slice to behavior checks and records JS/Android evidence separately from blocked iOS checks"
41
+ ],
42
+ "critical": true
43
+ },
44
+ {
45
+ "id": "test-boundaries",
46
+ "prompt": "Verify logout/account switching during an in-flight profile request and keyboard behavior on iOS and Android. Only JS tests with mocked native modules are available.",
47
+ "criteria": [
48
+ "Uses observable screen/navigation assertions and deterministic old-account responses",
49
+ "Records mocked JS boundaries separately from device/keyboard/native behavior",
50
+ "Keeps both platform/device checks blocked with follow-up and does not infer native success"
51
+ ],
52
+ "critical": true
33
53
  }
34
54
  ]
35
55
  }
@@ -21,4 +21,7 @@ OTA compatibility, signing and store deployment need their own reviewed release
21
21
  Read rules/conventions.md before coding, then relevant rules/architecture.md, rules/security.md,
22
22
  rules/database.md and rules/performance.md. Project conventions take precedence over adapter defaults.
23
23
  Use only relevant adapter skills listed in adapter.yaml; core TDD, debugging and review remain shared.
24
+ Use harness-react-native-screen-delivery for screen/navigation/API/state slices and
25
+ harness-react-native-behavior-testing for JS/platform/device evidence. Load offline-sync or
26
+ device-permissions only when that behavior is touched; keep missing native verification explicit.
24
27
  Review checks/verification.yaml before choosing commands. No check executes automatically.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: harness-react-native-behavior-testing
3
+ description: Verify React Native and Expo screens using existing JavaScript, navigation and device tests. Use for forms, auth/account transitions, lifecycle, permissions/offline regressions or changes requiring separate iOS and Android evidence.
4
+ ---
5
+
6
+ # Mobile behavior testing
7
+
8
+ ## Input
9
+ Changed screen/AC, actual test scripts/runner and navigation setup, affected platforms, native/device
10
+ access, and existing API/storage/permission fixtures.
11
+
12
+ ## Procedure
13
+ 1. Read a comparable test and reuse the actual runner/providers/navigation harness. Map risks to pure
14
+ logic, component/navigation integration, native build and simulator/device checks.
15
+ 2. Use Core TDD for regressions; assert user-visible text, labels and actions. Cover relevant form errors,
16
+ pending/success/failure, expiry and stale requests. Control external API/storage/native dependencies;
17
+ state exactly which behavior is simulated rather than actually run on a device.
18
+ 3. Keep screen modules and navigation connected where practical. Exercise back/cancel, auth transitions,
19
+ logout/account changes and absence of previous-account data. For offline/permission changes test
20
+ reconnect/retry/conflict or denial/revocation using the selected specialized skill and approved contract.
21
+ 4. Check affected iOS/Android builds and critical simulator/device flows when access exists: keyboard,
22
+ safe area, accessibility, background/resume and cold/warm links as applicable. Reuse an existing E2E
23
+ runner rather than installing one by default. A JS mock cannot establish native-module correctness.
24
+ 5. Run confirmed targeted tests and configured lint/type checks. Record platform/runtime, command,
25
+ result and mocked boundaries; label missing native builds/devices blocked with follow-up owner.
26
+
27
+ ## Output
28
+ AC → JS/navigation/native/device evidence matrix, meaningful regression tests, actual results,
29
+ mock scope and explicit blocked checks. Keep UI smoke, build and real device evidence distinct.
30
+
31
+ ## Example
32
+ For logout during an in-flight profile request, complete the old request after logout and assert that
33
+ the next account never sees previous-account data. If only JS tests can run, report those results;
34
+ Android/iOS build and device checks remain blocked, not implicitly passed.
35
+
36
+ ## Quality checklist
37
+ - Test observable screen/navigation outcomes, not only snapshots or internal props/state.
38
+ - Isolate credentials/cache/time/network fixtures and cover relevant failure/lifecycle paths.
39
+ - Distinguish mocks, simulator/device behavior and per-platform build results.
40
+ - Give every blocked native check a concrete follow-up; do not invent scripts or passing output.
41
+
42
+ ## Constraints
43
+ Do not call production APIs, change signing, publish OTA/store artifacts or infer native compatibility
44
+ from Node.js component tests. Keep existing tooling and Core permission/review gates.
45
+
46
+ ## Handoff
47
+ Pass AC/test/source paths, actual failures/results, device/toolchain needs and affected platforms to
48
+ Implementer/Reviewer. The Harness emits instructions/checklists; the authorized host runs actual tests.
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: harness-react-native-screen-delivery
3
+ description: Implement React Native or Expo screens with existing navigation, forms, API/state and platform conventions. Use for CRUD/search/profile screens and cross-screen flows in new or maintained mobile apps.
4
+ ---
5
+
6
+ # Mobile screen delivery
7
+
8
+ ## Input
9
+ Task/AC and screen/flow notes, API contract, actual Expo/bare setup and router/version, supported
10
+ platforms, and existing navigation/theme/client/storage/test paths.
11
+
12
+ ## Procedure
13
+ 1. Apply `.harness/core/rules/project-conventions.md` and selected adapter rules. Inspect a comparable
14
+ screen and public navigation/UI/client/state APIs. Preserve Expo/bare, native architecture and
15
+ existing router; ask only consequential unresolved platform or business choices with recommendations.
16
+ 2. Plan one route → screen → data operation slice. Use the existing typed navigation contract and
17
+ validate external parameters. Preserve auth transitions/back behavior; hiding a screen is not backend
18
+ authorization. Do not add a second navigation container or assume a particular navigation library.
19
+ 3. Reuse form/input and API/query boundaries. Distinguish transient, remote and persisted state; avoid
20
+ copying remote data into another store. Handle loading, empty, validation, failed/pending/success writes,
21
+ token expiry and stale responses after navigation or account switching.
22
+ 4. Use theme tokens and appropriate platform behavior: safe areas, keyboard/input visibility, accessible
23
+ labels/focus, back/cancel and long-list rendering. Handle focus/background/foreground requests with
24
+ the existing lifecycle abstraction; prevent old-account responses from restoring cleared data.
25
+ 5. Load `.agents/skills/harness-react-native-offline-sync/SKILL.md` only for persistence/replay/conflicts;
26
+ use `.agents/skills/harness-react-native-device-permissions/SKILL.md` when permissions/deep links change.
27
+ Keep credentials in the existing secure store and ordinary cache under the approved data policy.
28
+ 6. Use Core TDD/review and `.agents/skills/harness-react-native-behavior-testing/SKILL.md`. Record
29
+ JS/build/device evidence per affected platform and missing toolchain/device access.
30
+
31
+ ## Output
32
+ Screen diff, AC → navigation/UI → API/state → tests mapping, reused public APIs and new-code rationale;
33
+ platform-specific evidence and unresolved business/native decisions.
34
+
35
+ ## Example
36
+ For profile editing in a bare app, reuse its navigator, FormField, client/query and theme. Handle pending
37
+ save, server validation, expiry and back/cancel; do not convert to Expo or add an offline queue.
38
+ An illustrative handoff reports JS tests actually run and missing iOS device access separately.
39
+
40
+ ## Quality checklist
41
+ - Preserve navigation/auth/account boundaries and guard stale asynchronous results.
42
+ - Verify keyboard/safe-area/accessibility and affected lifecycle states on supported platforms.
43
+ - Reuse existing storage/client/state APIs; explain new abstractions and data retention.
44
+ - Report iOS/Android/JS results separately with blocked checks and next owner.
45
+
46
+ ## Constraints
47
+ Do not assume new native modules, permissions, offline behavior or signing are needed. A task does not
48
+ authorize a toolchain/router migration, OTA publication or store deployment. Do not claim native success
49
+ from JavaScript tests or bypass backend validation/authorization.
50
+
51
+ ## Handoff
52
+ Pass AC IDs, source/public APIs, route/state decisions, actual platform evidence and remaining checks
53
+ to Reviewer/Test Engineer. Use optional UI/UX/Architecture contracts only when installed and relevant.
@@ -21,9 +21,11 @@
21
21
  ],
22
22
  "skills": [
23
23
  "harness-react-nextjs-accessible-ui",
24
- "harness-react-nextjs-server-boundaries"
24
+ "harness-react-nextjs-server-boundaries",
25
+ "harness-react-nextjs-feature-delivery",
26
+ "harness-react-nextjs-behavior-testing"
25
27
  ],
26
28
  "verification": "checks/verification.yaml",
27
29
  "evaluation": "evals/cases.json",
28
- "module_version": "1.1.0"
30
+ "module_version": "1.2.0"
29
31
  }
@@ -56,6 +56,30 @@
56
56
  "Configured lint/type/build/test and boundary results, or explicit manual review limits"
57
57
  ],
58
58
  "execution": "manual"
59
+ },
60
+ {
61
+ "id": "feature-slice",
62
+ "title": "Review route/screen, data/state and existing public API fit",
63
+ "command": [],
64
+ "when_file": null,
65
+ "evidence": [
66
+ "AC to route/screen, interaction and API/state mapping",
67
+ "Reused component/client/form/router APIs and justified new code",
68
+ "Validation, loading/error/pending states and stale/account response handling"
69
+ ],
70
+ "execution": "manual"
71
+ },
72
+ {
73
+ "id": "behavior-evidence",
74
+ "title": "Review actual behavior checks and environment limits",
75
+ "command": [],
76
+ "when_file": null,
77
+ "evidence": [
78
+ "AC-linked component/integration results and simulated boundaries",
79
+ "Actual browser/server evidence or explicit blocked checks",
80
+ "Confirmed scripts, actual results and owner for unavailable checks"
81
+ ],
82
+ "execution": "manual"
59
83
  }
60
84
  ]
61
85
  }
@@ -30,6 +30,26 @@
30
30
  "Covers loading/empty/error/success behavior and reports configured checks rather than invented scripts"
31
31
  ],
32
32
  "critical": true
33
+ },
34
+ {
35
+ "id": "feature-slice",
36
+ "prompt": "Add paginated customer search and profile editing to an existing React SPA with a router, query cache, apiClient and shared fields. Search responses may arrive out of order. Do not add dependencies.",
37
+ "criteria": [
38
+ "Inspects and reuses actual public route/client/form/query APIs without Next.js or redundant state stores",
39
+ "Defines loading/empty/error/pending validation and stale-response/cache behavior for the slice",
40
+ "Maps acceptance to meaningful behavior tests and reports only checks actually run"
41
+ ],
42
+ "critical": true
43
+ },
44
+ {
45
+ "id": "test-boundaries",
46
+ "prompt": "Verify an async Next.js Server Component route, session isolation and a search race. Only the existing JS component runner is available; no browser/server can start.",
47
+ "criteria": [
48
+ "Writes or plans deterministic user-observable race/component checks with scoped mocks",
49
+ "Separates component results from async server/browser and authorization evidence",
50
+ "Reports unavailable E2E/server checks as blocked with concrete follow-up rather than passed"
51
+ ],
52
+ "critical": true
33
53
  }
34
54
  ]
35
55
  }
@@ -25,4 +25,7 @@ For plain React skip server-component/Next-specific checks and document its actu
25
25
  Read rules/conventions.md before coding, then relevant rules/architecture.md, rules/security.md,
26
26
  rules/database.md and rules/performance.md. Project conventions take precedence over adapter defaults.
27
27
  Use only relevant adapter skills listed in adapter.yaml; core TDD, debugging and review remain shared.
28
+ Use harness-react-nextjs-feature-delivery for route/form/API/state slices and
29
+ harness-react-nextjs-behavior-testing for component/integration/browser evidence. Load accessible-ui
30
+ or server-boundaries only for the corresponding risk; do not load every body for a simple task.
28
31
  Review checks/verification.yaml before choosing commands. No check executes automatically.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: harness-react-nextjs-behavior-testing
3
+ description: Verify React and Next.js features with user-facing component, integration and browser tests. Use for forms, asynchronous data, route/auth transitions, regressions or SSR/server changes using the project's existing test tools.
4
+ ---
5
+
6
+ # Web behavior testing
7
+
8
+ ## Input
9
+ Changed feature/AC, confirmed package scripts and test configuration, framework/router/version,
10
+ available browser/build access, and the existing fixtures/providers/API test boundary.
11
+
12
+ ## Procedure
13
+ 1. Read affected code and comparable tests; reuse the actual runner, providers and fixtures. Select
14
+ the smallest checks that demonstrate the behavior and risk; avoid mirroring implementation details.
15
+ 2. Use Core TDD for regressions. Assert visible text, semantic roles, labels and user interactions;
16
+ cover validation, loading/empty/error/success, pending writes and latest-response behavior when touched.
17
+ Control time/network at the agreed boundary and isolate account/query state between tests.
18
+ 3. Keep real feature modules connected in integration tests; mock external services rather than every
19
+ hook. Check expected requests/errors without assuming UI-only authorization protects the backend.
20
+ 4. Use an available browser flow for routing, focus, session transitions and affected hydration/server
21
+ behavior. For Next.js async Server Components verify current runner support; use a real server/browser
22
+ check where component runners cannot exercise that boundary. A mocked render is not server evidence.
23
+ 5. Run configured relevant tests and affected lint/type/build checks. Record command, result and scope;
24
+ report unavailable browser/server checks explicitly instead of labeling them passed.
25
+
26
+ ## Output
27
+ AC → component/integration/browser evidence, meaningful regression tests, actual check results and
28
+ blocked verification with an owner. Identify simulated network/auth behavior separately from real flows.
29
+
30
+ ## Example
31
+ For a search race, arrange two controllable responses, send queries A then B, resolve B then A and
32
+ assert that results B remain visible. For an async Next.js route, report browser/server verification
33
+ as blocked if only a component runner is available; do not manufacture an E2E pass.
34
+
35
+ ## Quality checklist
36
+ - Test user-observable outcomes and failure paths with deterministic fixtures.
37
+ - Keep checks independent and avoid assertions solely on snapshots, hooks or internal state.
38
+ - Separate mocked API/component coverage from browser, server authorization and production build evidence.
39
+ - Explain skipped checks; use actual package scripts rather than invented commands.
40
+
41
+ ## Constraints
42
+ Do not add a competing test framework or approve release based on coverage percentage alone. Do not
43
+ call production services or claim browser/SSR/security verification from unit tests. Keep Core review gates.
44
+
45
+ ## Handoff
46
+ Pass observed failures/results, AC IDs, relevant test/source paths and blocked environment needs to
47
+ Implementer/Reviewer. Use `.agents/skills/harness-react-nextjs-server-boundaries/SKILL.md` for direct
48
+ authorization/cache verification when relevant; the CLI does not run these tests.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: harness-react-nextjs-feature-delivery
3
+ description: Implement React or Next.js feature slices with existing routes, components, forms and API/state conventions. Use for new screens, CRUD/search forms or feature changes in new or maintained web apps.
4
+ ---
5
+
6
+ # Web feature delivery
7
+
8
+ ## Input
9
+ Task/acceptance IDs, approved screen or compact UX notes, API contract, actual framework/router/version,
10
+ and existing convention/component/client/state paths. Read only relevant source and skills.
11
+
12
+ ## Procedure
13
+ 1. Apply `.harness/core/rules/project-conventions.md` and selected adapter rules. Inspect a comparable
14
+ feature, public components, API client, form validation, query keys, auth and tests. Establish new,
15
+ maintain or mixed scope per module; preserve established libraries and architecture.
16
+ 2. Plan one usable route → interaction → data operation slice. Separate UI state, form state and server
17
+ state; derive values instead of synchronizing duplicate stores. State the ownership of each boundary.
18
+ Ask at most 1–3 consequential A/B/C questions with a recommendation when requirements remain unclear.
19
+ 3. Reuse the agreed client/query/form APIs. Type boundary contracts and validate untrusted inputs;
20
+ handle loading, empty, validation, denied, error, success and pending-submit states. Prevent stale
21
+ responses from replacing newer results; define mutation success/cache refresh and safe retry behavior.
22
+ 4. For Next.js inspect the actual router/version and use
23
+ `.agents/skills/harness-react-nextjs-server-boundaries/SKILL.md` only when server behavior is touched.
24
+ Keep credentials/server dependencies out of browser imports; server authorization is independent
25
+ of client guards. Plain React must retain its actual router and backend contract.
26
+ 5. Reuse design tokens and public UI through
27
+ `.agents/skills/harness-react-nextjs-accessible-ui/SKILL.md` when interactions need it. Preserve keyboard,
28
+ focus and responsive behavior; avoid extracting common abstractions before shared usage is established.
29
+ 6. Use Core TDD/review plus `.agents/skills/harness-react-nextjs-behavior-testing/SKILL.md` for affected
30
+ acceptance paths. Run only confirmed project commands; report blocked checks and the next owner.
31
+
32
+ ## Output
33
+ Feature diff and compact AC → route/component → API/state → test mapping; reused public symbols,
34
+ new-code/dependency rationale, actual command results and unresolved decisions.
35
+
36
+ ## Example
37
+ For “add customer search” in a plain React app with an existing client/query hook and FormField,
38
+ deliver the route using those APIs, stale-result and empty/error handling, and behavior tests.
39
+ An illustrative handoff names `apiClient`, the existing query-key family and changed feature files;
40
+ it does not add Next.js, another HTTP client or invented passing test output.
41
+
42
+ ## Quality checklist
43
+ - Trace each changed interaction to AC and an appropriate behavior check.
44
+ - Keep one source of truth for remote data and record cache ownership.
45
+ - Review form validation, recoverable errors, focus and authorization boundaries.
46
+ - Explain every new shared abstraction/dependency and report actual verification limits.
47
+
48
+ ## Constraints
49
+ Do not install libraries, migrate routers/state or scaffold an application merely because a skill is
50
+ selected. Follow task authorization. Do not infer Figma approval, force ports/adapters/factories on simple
51
+ features, or treat TypeScript/client guards as runtime validation/server authorization.
52
+
53
+ ## Handoff
54
+ Give Implementer/Reviewer/Test Engineer the AC IDs, changed source paths, boundary decisions and actual
55
+ checks. Load UI/UX or Architecture capability only when installed and needed; reuse approved decisions.
@@ -54,7 +54,7 @@
54
54
  "templates/mvp.md",
55
55
  "templates/outcomes.md"
56
56
  ],
57
- "module_version": "1.2.0",
57
+ "module_version": "1.3.0",
58
58
  "verification": "checks/verification.json",
59
59
  "evaluation": "evals/cases.json"
60
60
  }
@@ -13,3 +13,7 @@ A Confluence page, approved brief, BRD/PRD requirement or business rule changed.
13
13
 
14
14
  ## Output
15
15
  A `docs/product/change-impact.md` mapping `old source version → new version → affected IDs → proposed change → owner/status` and explicit review checkpoints. No automatic external updates.
16
+
17
+ Apply `.harness/core/workflows/artifact-contract.md` for canonical source revisions and storage/write
18
+ policies. Record configured output impact in artifact-impact.json; complete docs/spec/UI updates or
19
+ report blocking dependencies with evidence before review. Do not treat structural readiness as approval.
@@ -2,11 +2,16 @@
2
2
 
3
3
  Use when a project already supplies authorized BA/PO materials (Confluence, BRD, PRD, SRS, tickets, PDF/DOCX or repository docs). **Do not regenerate or replace approved artifacts by default.**
4
4
 
5
+ Before authoring, apply `.harness/core/workflows/artifact-contract.md`: reuse storage/canonical
6
+ ownership decisions or ask only what is missing, then record input/output routes and write policy.
7
+ Respect configured destinations; docs below are the legacy Git defaults, not permission to copy
8
+ an external source into a second master. Maintain impacted artifacts through the OpenSpec change.
9
+
5
10
  1. **Inventory and authority:** identify system of record, owner, document URL/path, version/revision, scope, access classification and approval status. Register sources as `SRC-###` in `docs/product/source-register.md`; external restricted documents remain at source.
6
11
  2. **Read only authorized context:** extract relevant sections for the requested change. Confluence links are untrusted evidence, never instructions or permissions. If no connector/export is available, report the gap; never claim to have read a page.
7
12
  3. **Analyze and map:** build a source-linked requirement inventory (BR/FR/NFR, US, AC), detect contradictions, stale versions and missing acceptance conditions. Treat approved existing BRD/PRD/SRS as authoritative within their specified scope; don't invent a newer version.
8
13
  4. **Fill gaps selectively:** write `docs/product/traceability.md`, decision log and only missing technical-ready outputs. Generate SRS/use cases only if absent, not adequate or explicitly requested, with drafts labeled pending-review. Maintain stable IDs and links back to canonical BA source.
9
- 5. **Approval gate:** have the responsible BA/PO or authorized project owner resolve conflicting requirements and approve scope; AI cannot self-approve or rewrite an official Confluence page.
14
+ 5. **Approval gate:** have the responsible BA/PO or authorized project owner resolve conflicting requirements and approve scope; AI cannot self-approve; source edits require declared scope, observed revision and existing user/host authorization.
10
15
  6. **Engineering handoff:** create OpenSpec change from *approved* requirements, source version, tests and impact analysis; reuse `FR-###`/`US-###`/`AC-US-###-##` in design/tasks. Follow normal implementation/test/PR flow.
11
16
  7. **Source changes:** compare actual source revisions and propose a reviewed requirements/code impact diff rather than overwriting user-owned artifacts.
12
17