@manhd_d/ai-harness 0.8.0 → 0.9.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
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased — Simpler onboarding
4
+ - Consolidate first-use documentation into a one-command README and a copyable AI task; keep setup and model preferences optional.
5
+ - Add docs/README.md for advanced guides and examples, preserving frontend/mobile onboarding and environment ownership from the latest main.
6
+ - Verify documentation discovery through the index. No CLI, module or consumer schema changes.
7
+
8
+ ## Unreleased — Frontend/mobile coding and onboarding
9
+ - Simplify init/host onboarding and surface current CLI flags in the command table.
10
+ - 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.
11
+ - 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.
12
+
13
+
3
14
  ## Unreleased — Agent preferences and release regression
4
15
  - Add provider-agnostic project-owned agents.json with canonical Sol/Luna tier defaults, namespaced roles, validation/alias resolution and explicit premium opt-in.
5
16
  - 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 +95,13 @@
84
95
  - Check release metadata consistency and establish single-release-PR version discipline; retain v0.6.0 until a dedicated release PR.
85
96
 
86
97
 
98
+ ## [0.9.0](https://github.com/manh0303/ai-harness/compare/v0.8.0...v0.9.0) (2026-10-13)
99
+
100
+
101
+ ### Features
102
+
103
+ * complete onboarding and web mobile coding skills ([4e26a1d](https://github.com/manh0303/ai-harness/commit/4e26a1de1d5c2c95a6b4a6c610ebc4d6ccad61f6))
104
+
87
105
  ## [0.8.0](https://github.com/manh0303/ai-harness/compare/v0.7.0...v0.8.0) (2026-10-12)
88
106
 
89
107
 
package/README.md CHANGED
@@ -1,88 +1,38 @@
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
+ **Giúp AI làm việc theo quy tắc của project: hiểu yêu cầu → viết code → test → review.**
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
+ Dùng với Codex, Claude Code, Cursor và các AI coding tools đọc được file trong project.
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
+ ## Bắt đầu
8
8
 
9
- ## Cài đặt và dùng nhanh
9
+ Cần **Node.js 22+**. Chạy trong thư mục project của bạn:
10
10
 
11
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
12
+ npx --yes @manhd_d/ai-harness init --detect
18
13
  ```
19
14
 
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.
15
+ Mở project trong công cụ AI bạn dùng, rồi gửi:
36
16
 
37
- ## Thành phần
17
+ > Đọc AGENTS.md, khảo sát project và ghi context cần thiết vào .harness/local.md.
18
+ > Thực hiện yêu cầu: [mô tả công việc]. Chạy test phù hợp và báo cáo kết quả.
38
19
 
39
- | Nhóm | Hỗ trợ |
40
- | --- | --- |
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 |
20
+ Bạn giao việc bình thường, không cần gọi từng agent, skill hay mở chat riêng cho từng vai. Harness cài hướng dẫn; công cụ AI thực hiện công việc.
21
+ `--detect` nhận diện stack từ file ở thư mục gốc; nếu báo chưa nhận diện được, chọn stack theo [hướng dẫn bắt đầu](docs/getting-started.md).
45
22
 
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).
23
+ ## Chọn theo nhu cầu
47
24
 
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).
25
+ - **Code:** Spring Boot, React/Next.js, React Native, Python AI/RAG, Astro, Kubernetes.
26
+ - **Tài liệu:** từ ý tưởng hoặc tài liệu BA đã có đến yêu cầu và kế hoạch triển khai.
27
+ - **Mở rộng:** UI/UX, kiến trúc, quản lý tiến độ, DevOps khi cần.
50
28
 
51
- ## Hai luồng làm việc
52
-
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.
55
-
56
- Chi tiết: [Documentation workflows](docs/documentation-workflows.md) · [Confluence integration](integrations/confluence/README.md).
29
+ Chỉ cài phần cần dùng. Task nhỏ không cần đủ BRD/PRD/SRS hay spec.
57
30
 
58
31
  ## Tài liệu
59
32
 
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).
61
-
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) |
72
-
73
- ## Kiểm tra và cập nhật
33
+ [Bắt đầu & chọn stack](docs/getting-started.md) · [Tra cứu & ví dụ](docs/README.md) · [Cấu hình công cụ AI](docs/tool-setup/README.md)
74
34
 
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
- ```
35
+ `aih check` chỉ kiểm tra file Harness; tính năng đúng hay chưa cần test của project và review.
87
36
 
88
- **License:** [MIT](LICENSE). GitHub source có thể private; package `@manhd_d/ai-harness` được phát hành công khai qua npm.
37
+ Đóng góp: [Contributing](CONTRIBUTING.md) · [Bảo trì Harness](docs/harness-maintenance.md).
38
+ License: [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.
package/docs/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # Tra cứu AI Harness
2
+
3
+ Mới bắt đầu: [Cài đặt và giao task đầu tiên](getting-started.md).
4
+ Chỉ đọc phần phù hợp với công việc đang làm.
5
+
6
+ ## Sử dụng
7
+
8
+ | Cần làm gì? | Đọc ở đâu? |
9
+ | --- | --- |
10
+ | Tra lệnh, chọn module, xử lý conflict | [CLI](cli.md) · [Adapters](adapters.md) |
11
+ | Kết nối công cụ AI | [Codex, Claude Code, Cursor, Copilot, Gemini CLI](tool-setup/README.md) |
12
+ | Chọn model và cách chạy agent | [Agent configuration](agent-configuration.md) |
13
+ | Khai báo build/test, Maven/JDK riêng | [Project configuration](project-configuration.md) |
14
+ | Áp dụng coding conventions | [Project conventions](project-conventions.md) |
15
+ | Từ ý tưởng / tài liệu BA đến yêu cầu | [Documentation workflows](documentation-workflows.md) · [Confluence](../integrations/confluence/README.md) |
16
+ | Đi từ yêu cầu đến vận hành | [Full SDLC](end-to-end-workflow.md) · [BA/PO/SA/PM](solution-workflow.md) |
17
+ | Spec trước code / review | [Change readiness](change-readiness.md) · [OpenSpec](openspec.md) |
18
+ | Tra skill và bàn giao agent | [Skill matrix](skill-matrix.md) · [Agent handoffs](agent-handoffs.md) |
19
+ | Kiểm tra code và đánh giá kết quả AI | [Verification](verification.md) · [Behavioral evaluations](../evals/README.md) |
20
+
21
+ [Code React/Next.js & React Native/Expo](frontend-mobile.md) · [Monetization capability](../capabilities/monetization/README.md).
22
+
23
+ ## Ví dụ
24
+
25
+ | Loại project | Hướng dẫn |
26
+ | --- | --- |
27
+ | Spring Boot API | [Backend](examples/spring-boot-api.md) |
28
+ | Spring + Next.js | [Full-stack](examples/fullstack-web.md) |
29
+ | React Native | [Mobile](examples/react-native-app.md) |
30
+ | Python AI/RAG | [AI service](examples/ai-rag-service.md) |
31
+ | Astro tool nhỏ | [Micro-tools](examples/astro-micro-tools.md) · [Adapter](../adapters/astro/README.md) |
32
+ | Website có quảng cáo | [Astro + AdSense](examples/astro-adsense-microtools.md) · [Monetization](monetization.md) |
33
+ | Bắt đầu từ ý tưởng | [Idea-driven](examples/idea-driven-project.md) |
34
+ | Đã có tài liệu BA | [Document-driven](examples/document-driven-project.md) |
35
+
36
+ ## Đóng góp và phát hành
37
+
38
+ [Contributing](../CONTRIBUTING.md) · [Bảo trì & ma trận ảnh hưởng](harness-maintenance.md) · [Kiến trúc](architecture.md) · [Thêm adapter](adapters.md).
39
+ [Release policy](release-policy.md) · [Phát hành npm](npm-release.md) · [Versioning & migration](versioning.md) · [Changelog](../CHANGELOG.md).
package/docs/adapters.md CHANGED
@@ -8,13 +8,15 @@ review and the general workflow. Adapter skills address technology-specific deci
8
8
  | Adapter | Skills |
9
9
  | --- | --- |
10
10
  | java-spring | Spring API, Kafka outbox, database migration |
11
- | react-nextjs | Accessible UI, server/client authorization and caching |
11
+ | react-nextjs | Feature slices, behavior testing, accessible UI, server/client authorization and caching |
12
12
  | astro | Static-first micro-tools, islands, SEO, performance, Cloudflare and optional MFE migration |
13
- | react-native | Offline synchronization, permissions and deep links |
13
+ | react-native | Screen/navigation slices, behavior/platform testing, offline synchronization, permissions and deep links |
14
14
  | ai-python | RAG access filtering, model tool safety |
15
15
  | kubernetes | Workload review, Helm release and safe rollout planning |
16
16
 
17
17
  ## Source contract
18
+ For setup, skill choice and examples see [Frontend/mobile coding](frontend-mobile.md).
19
+
18
20
  adapter.yaml uses **JSON-compatible YAML 1.2**, parsed with JSON.parse. Arbitrary YAML syntax is not supported.
19
21
  The CLI rejects unknown fields and unsupported schemas rather than guessing. Required fields:
20
22
 
@@ -3,6 +3,10 @@
3
3
  AI Harness hiện có **role contracts**, không tạo các agent chạy tự động hoặc agent-to-agent queue. Một assistant có thể đảm nhiệm nhiều vai trò theo thứ tự, nhưng phải tách evidence, quyền hạn và human approval. Dùng cùng [Full SDLC](end-to-end-workflow.md) và [Skill matrix](skill-matrix.md).
4
4
 
5
5
  ## Trách nhiệm theo vai trò
6
+ For React/Next.js and React Native implementation/testing, use the selective skill routing in
7
+ [Frontend/mobile coding](frontend-mobile.md). Handoff AC → route/screen → API/state → test evidence,
8
+ including reused public APIs and unavailable browser/native checks; retain the same Core roles.
9
+
6
10
 
7
11
  | Role contract trong source | Nhận | Bàn giao | Không được làm |
8
12
  | --- | --- | --- | --- |
package/docs/cli.md CHANGED
@@ -12,14 +12,14 @@ Exit 0 means the requested operation succeeded; 1 means validation/I/O/drift fai
12
12
  | resolve | --source; --adapters a,b; --capabilities a,b | Validate module selection and compatibility; read-only |
13
13
  | verify | --scope adapters/core/capabilities/all | Read installed advisory checks; executed false, no subprocesses |
14
14
  | eval | --scope adapters/core/capabilities/all; --report FILE | Emit unscored template or aggregate reviewed report; no model calls |
15
- | init | --detect OR --adapters a,b; --capabilities a,b; --source; --dry-run; --allow-major | Install a snapshot; exact rerun is idempotent |
15
+ | init | --detect OR --adapters a,b; --capabilities a,b; --agent-preset recommended/economy/custom; --source; --dry-run; --allow-major | Install a snapshot and seed project agent preferences; exact rerun without explicit preset is idempotent |
16
16
  | update | --source; --dry-run; --allow-major | Update unedited owned files and seed missing project files |
17
17
  | check | none | Compare installed files/block with lock and selection; no writes |
18
18
  | doctor | none | check plus configured environment/path diagnostics and generic PATH hints; no execution |
19
- | setup | none | Read-only host-facing question plan; skips tool-selection suggestions when tools are configured |
19
+ | setup | --host codex/claude-code/gemini-cli/cursor/copilot/custom-ID (optional) | Read-only question and agent-routing plan; skips tool-selection suggestions when tools are configured |
20
20
  | ready ID | --stage implement/review | Structural readiness; blocked returns exit 1, ready returns exit 0; no business approval |
21
21
  | new-change ID | none | Create an unapproved OpenSpec draft using installed templates |
22
- | new-doc TYPE | none | Copy a selected locked Product template to `docs/discovery/` (idea, research) or `docs/product/` (other types) without overwriting |
22
+ | new-doc TYPE | --capability ID (default product) | Copy one selected locked template into the owner's project docs without overwrite; Product idea/research use `docs/discovery/`, other Product types use `docs/product/` |
23
23
  | skills | none | List installed skill metadata only |
24
24
  | skill NAME | none | Read one installed, locked skill |
25
25
 
@@ -145,3 +145,6 @@ existing files are validated/preserved and explicit preset overwrite is refused.
145
145
  (or claude-code/gemini-cli/cursor/copilot/custom ID) exports resolved roles and compatibility limitations
146
146
  without probing models or editing host files. No extra config command, runtime or usage tracking.
147
147
  See [Agent configuration](agent-configuration.md).
148
+ Setup exit 0 means the read-only plan was produced, not that all models are usable. Inspect the nested
149
+ agent_configuration.status and active route availability; host-incompatible/unverified requests require
150
+ actual host checks before execution.
@@ -104,6 +104,10 @@ Project tự sở hữu các file `docs/product/` và cập nhật `traceability
104
104
  - **No code yet:** Product + UI/UX có thể dừng sau design gate, không tạo PR implementation giả.
105
105
 
106
106
  ## 5. Verify, eval và hồ sơ release
107
+ Web/mobile implementation and testing use [Frontend/mobile coding](frontend-mobile.md): select the
108
+ feature/screen skill plus relevant testing/boundary skills, preserve existing common APIs and hand off
109
+ actual browser/server or per-platform native evidence. Load only needed skill bodies for simple tasks.
110
+
107
111
 
108
112
  ~~~bash
109
113
  aih verify --scope all
@@ -52,11 +52,15 @@ aih new-change add-ticket-creation
52
52
  aih skill harness-spec
53
53
  aih skill harness-tdd
54
54
  aih skill harness-java-spring-spring-api
55
+ aih skill harness-react-nextjs-feature-delivery
55
56
  aih skill harness-react-nextjs-accessible-ui
56
57
  aih skill harness-react-nextjs-server-boundaries
58
+ aih skill harness-react-nextjs-behavior-testing
57
59
  ~~~
58
60
 
59
61
  Spec phải chứa contract `POST /...` thực tế đã review, authorization, error envelope, loading/empty/errors, client/server boundaries, cache invalidation và contract tests. Implement thành vertical slice API + UI cùng acceptance IDs. Đối với giao diện frontend, kiểm tra SSR/client boundary và tránh đưa credentials ra browser.
62
+ Chỉ đọc skill body cần cho task; reuse client/query/FormField hiện có. Skills delivery/testing bao phủ
63
+ route/form/API/state và AC-linked component/browser evidence; không ép plain React dùng Next.js.
60
64
 
61
65
  Ví dụ kiểm tra **chỉ nếu repo có tương ứng**:
62
66
 
@@ -28,14 +28,18 @@ Nếu chỉ sửa một lỗi offline đã có ticket/AC duyệt, có thể bỏ
28
28
  aih new-change offline-draft-sync
29
29
  aih skill harness-spec
30
30
  aih skill harness-tdd
31
+ aih skill harness-react-native-screen-delivery
31
32
  aih skill harness-react-native-offline-sync
32
33
  aih skill harness-react-native-device-permissions
34
+ aih skill harness-react-native-behavior-testing
33
35
  ~~~
34
36
 
35
37
  - `offline-sync`: định nghĩa local persistence encryption/retention, idempotency key, queue/retry backoff, conflict resolution và đồng bộ lại khi token hết hạn.
36
38
  - `device-permissions`: chỉ cần nếu feature có camera/location/notification/deep link; kiểm tra iOS và Android riêng, fallback khi từ chối permission.
37
39
  - Spec chứa test matrix: airplane mode, offline restart, duplicate request, conflict, revoke session, low storage và app update.
38
40
  - Không log token/customer payload, không giả định AsyncStorage/SecureStore đã được chọn; dùng stack đang có.
41
+ - Dùng screen-delivery để reuse navigation/theme/client/form và behavior-testing cho test matrix;
42
+ chỉ nạp offline/permissions khi task chạm rủi ro đó. JS mocks không chứng minh native/device behavior.
39
43
 
40
44
  **Verification** — tùy project scripts/toolchain, không được Harness thực thi:
41
45
 
@@ -0,0 +1,76 @@
1
+ # Code React/Next.js và React Native
2
+
3
+ Adapter có rules/conventions và skills cho implementation, kiểm thử cùng các rủi ro chuyên biệt.
4
+ Không cần thêm bộ skills ngoài để bắt đầu. Chỉ cài module phù hợp; AI đọc một skill khi task cần nó.
5
+
6
+ ## Init và bắt đầu
7
+
8
+ Trong repository ứng dụng đã tạo, chọn **một** lệnh theo stack:
9
+
10
+ ```bash
11
+ # React web hoặc Next.js
12
+ aih init --adapters react-nextjs
13
+ # React Native hoặc Expo
14
+ aih init --adapters react-native
15
+ ```
16
+
17
+ Sau đó chạy `aih check`, `aih setup --host codex` (đổi host theo công cụ thực tế), mở AI tool và giao:
18
+
19
+ > Đọc AGENTS.md và workflow project-setup. Khảo sát router, versions, common components, API client,
20
+ > form/state/navigation và test setup. Dự án này cần [tính năng]. Hỏi phần còn thiếu, đề xuất slice/MVP
21
+ > và kiến trúc phù hợp, sau đó implement theo conventions hiện có và báo cáo checks thực chạy.
22
+
23
+ Core đã có TDD/debug/review. Nếu cần thiết kế UX/Figma, thêm `--capabilities uiux` khi init mới.
24
+ Nếu cần khám phá ý tưởng/MVP/kiến trúc/kế hoạch, thêm `product,architecture,delivery`; không bắt task nhỏ
25
+ tạo đủ tài liệu. Dự án đã cài đổi `.harness/project.json` rồi review update, không re-init với lựa chọn khác.
26
+ Harness không tạo app/framework, cài libraries hoặc cấu hình Figma/native AI host.
27
+
28
+ ## Chọn skill theo việc
29
+
30
+ | Việc | React/Next.js | React Native/Expo |
31
+ | --- | --- | --- |
32
+ | Route/screen, form, CRUD/search, API và state | `harness-react-nextjs-feature-delivery` | `harness-react-native-screen-delivery` |
33
+ | Test hành vi và luồng | `harness-react-nextjs-behavior-testing` | `harness-react-native-behavior-testing` |
34
+ | Rủi ro chuyên biệt | `harness-react-nextjs-accessible-ui`, `harness-react-nextjs-server-boundaries` khi có Next server | `harness-react-native-offline-sync`, `harness-react-native-device-permissions` khi cần |
35
+
36
+ `aih skills` liệt kê metadata; `aih skill <id>` đọc một body. AI có thể chọn skill qua description và
37
+ đọc `.agents/skills/<id>/SKILL.md`, không cần bạn gọi từng role. Xem [Skill matrix](skill-matrix.md).
38
+ Skill IDs dưới namespace react-nextjs cũng dùng cho React web; plain React không bị ép chuyển Next.js.
39
+
40
+ ## Dự án mới và maintain
41
+
42
+ Với maintain, đọc feature tương tự trước: reuse UI public APIs, theme, form schema, client/query keys,
43
+ auth/state/router và test helpers. Không tạo thêm HTTP client, store, navigation container hay wrappers
44
+ khi common hiện tại đáp ứng. Với dự án mới, đề xuất cấu trúc feature và state/data boundaries vừa đủ;
45
+ so sánh các lựa chọn quan trọng trước khi chốt. Ports/adapters, factory hay global state cần vấn đề cụ thể,
46
+ không áp như checklist. Xem [Project conventions](project-conventions.md) và [Solution workflow](solution-workflow.md).
47
+
48
+ Web: xác định router/version; tách state UI/form/server, xử lý stale responses và pending mutations.
49
+ Next server phải validate/authorize mỗi operation, giữ credentials và private caches đúng boundary.
50
+ Mobile: xác định Expo/bare và platforms; giữ navigation/auth/account boundaries, keyboard/safe areas,
51
+ lifecycle và secure storage. Offline queue/permissions chỉ thêm khi yêu cầu thực tế cần chúng.
52
+
53
+ ## Ví dụ đầu ra
54
+
55
+ - Web search: route dùng client/query/FormField hiện có; loading/empty/error/latest-result; tests gắn AC,
56
+ keyboard/focus và build/browser evidence thực có. Không thêm Next.js vào React SPA.
57
+ - Mobile profile: screen dùng navigator/theme/client đã có; validation/save/expiry/back/account changes;
58
+ JS/native/device matrix phân biệt Android và iOS, ghi rõ checks bị chặn.
59
+
60
+ Đây là output minh họa, không phải kết quả đã chạy. [Full-stack example](examples/fullstack-web.md) và
61
+ [React Native example](examples/react-native-app.md) liên kết skills vào luồng spec → code → review.
62
+
63
+ ## Kiểm chứng và nguồn
64
+
65
+ Chạy lint/type/test/build theo scripts thực của ứng dụng. Browser checks phải có browser/server thật;
66
+ mocked component test không chứng minh SSR/authorization. Với native, JS tests không xác minh iOS/Android;
67
+ ghi simulator/device/build result riêng. `aih verify/eval` chỉ xuất checklist/dataset và không chạy chúng.
68
+ Không có trial ứng dụng/browser/native hoặc live-model benchmark trong nâng cấp Harness này.
69
+
70
+ Đối chiếu official docs theo version dự án (tham khảo ngày 2026-10-12):
71
+ - [React state structure](https://react.dev/learn/choosing-the-state-structure): tránh duplicate/derived state lưu dư.
72
+ - [Next.js testing](https://nextjs.org/docs/app/guides/testing): chọn đúng unit/component/E2E boundary;
73
+ kiểm tra runner support cho async Server Components.
74
+ - [React Native testing](https://reactnative.dev/docs/testing-overview): tách JS component và native/device evidence.
75
+ - [React Navigation auth flow](https://reactnavigation.org/docs/auth-flow/): chỉ áp dụng khi app đang dùng
76
+ React Navigation; giữ version-specific auth/back behavior, không mặc định cài router đó.
@@ -1,127 +1,78 @@
1
1
  # Bắt đầu với AI Harness
2
2
 
3
- **Cài một lần → ghi context dự án → giao việc cho AI → kiểm tra kết quả.**
4
-
5
- Cần Node.js **22+**, Git và một repository ứng dụng đã tồn tại. AI IDE/assistant phải đọc được file trong repository; cách tự nạp `AGENTS.md` và skills phụ thuộc AI host. CLI `aih` quản lý hướng dẫn, không chạy LLM hay tạo ứng dụng.
3
+ **Cài vào project → mở AI → giao việc → review kết quả.** Cần Node.js **22+** và một thư mục project. Với dự án mới, tạo thư mục/repository trước; Harness không tạo ứng dụng hay chạy model.
6
4
 
7
5
  ## 1. Cài vào project
8
6
 
7
+ Chạy tại thư mục gốc của project:
8
+
9
9
  ```bash
10
- npm install -g @manhd_d/ai-harness
11
- cd /path/to/existing-project
12
- aih init --adapters java-spring
13
- aih check
10
+ npx --yes @manhd_d/ai-harness init --detect
14
11
  ```
15
12
 
16
- Chọn module theo nhu cầu, không cần cài cả bộ:
13
+ Lệnh nhận diện stack từ file ở thư mục gốc và cài hướng dẫn tương ứng. Nếu báo chưa nhận diện được, thay `--detect` theo bảng; bỏ `--detect` để chỉ cài quy tắc chung (Core):
17
14
 
18
- | Nhu cầu | Tham số cho `aih init` |
15
+ | Project / nhu cầu | Tham số cho `init` |
19
16
  | --- | --- |
20
- | Spring Boot API | `--adapters java-spring` |
21
- | React/Next.js + UI | `--adapters react-nextjs --capabilities uiux` |
22
- | Astro tool nhỏ | `--adapters astro` |
23
- | Website có quảng cáo | `--adapters astro --capabilities monetization` |
24
- | Viết tài liệu từ ý tưởng hoặc tài liệu BA | `--capabilities product` |
25
- | Spring + tài liệu + Kubernetes | `--adapters java-spring,kubernetes --capabilities product,devops` |
26
-
27
- `aih list` xem toàn bộ module. `aih init --dry-run` xem trước thay đổi với cùng tham số đã chọn. Với project đã cài, đổi module trong `.harness/project.json` rồi dùng `aih update`, không chạy lại `init` với lựa chọn khác.
28
-
29
- ## 2. Ghi context và bắt đầu giao việc
30
-
31
- Chạy `aih setup` rồi nhờ AI đọc workflow `project-setup`. Đây là gợi ý cho AI host, không phải wizard
32
- nhập liệu của CLI. AI đọc repo trước, chỉ hỏi 1–3 câu A/B/C cho điểm còn thiếu, có đề xuất và lý do.
33
- Không cần xác nhận lại thông tin hoặc quyền triển khai đã có.
34
-
35
- Điền `.harness/local.md` bằng thông tin thực của project:
36
-
37
- - Mục tiêu, phạm vi và quy tắc nghiệp vụ quan trọng.
38
- - Stack/phiên bản, database, cấu trúc service/module.
39
- - Lệnh build/test đã xác nhận chạy được.
40
- - Đường dẫn tài liệu BA, conventions và những ràng buộc cần giữ.
41
-
42
- Mở project trong AI IDE và giao yêu cầu, ví dụ:
43
-
44
- > Đọc AGENTS.md và .harness/local.md, chỉ nạp skill liên quan. Thêm API tìm kiếm khách hàng theo yêu cầu này: … Làm rõ điểm chưa chắc chắn, đề xuất acceptance scenarios; sau khi thống nhất scope, triển khai, chạy test phù hợp và báo cáo kết quả thực chạy.
45
-
46
- Bạn không cần gọi từng role/skill thủ công. Nếu host không tự phát hiện hướng dẫn, yêu cầu assistant đọc các đường dẫn trên. `aih skills` xem danh sách; `aih skill <tên>` đọc một skill khi cần.
47
-
48
- Review diff và kết quả test, rồi commit `AGENTS.md`, `.harness/`, `.agents/skills/` và tài liệu thay đổi cùng project. Sửa quy tắc riêng trong `.harness/local.md`; giữ nguyên snapshot do Harness quản lý.
49
-
50
- Lệnh/tool chung thuộc `.harness/environment.json`; đường dẫn máy riêng thuộc file ignored
51
- `.harness/machine.json`. `aih doctor` kiểm tra tham chiếu biến và sự hiện diện công cụ, không chạy chúng.
52
- Xem [cấu hình Maven nội bộ](project-configuration.md).
17
+ | Spring Boot | `--adapters java-spring` |
18
+ | React / Next.js | `--adapters react-nextjs` |
19
+ | React Native / Expo | `--adapters react-native` |
20
+ | Python AI / RAG | `--adapters ai-python` |
21
+ | Astro tool / website | `--adapters astro` |
22
+ | Spring + Next.js | `--adapters java-spring,react-nextjs` |
23
+ | Viết tài liệu BA | `--capabilities product` |
53
24
 
54
- ## 3. Tài liệu và spec khi cần
55
-
56
- Với capability `product`:
25
+ Ví dụ vừa code Spring vừa viết tài liệu:
57
26
 
58
27
  ```bash
59
- aih new-doc prd-lite
28
+ npx --yes @manhd_d/ai-harness init --adapters java-spring --capabilities product
60
29
  ```
61
30
 
62
- Lệnh tạo template `docs/product/prd-lite.md`; bạn và AI điền nội dung, nguồn và acceptance criteria. Chọn [Idea-driven](examples/idea-driven-project.md) nếu bắt đầu từ ý tưởng; chọn [Document-driven](examples/document-driven-project.md) nếu đã có tài liệu BA/Confluence.
63
-
64
- Khi một tính năng cần proposal/design/tasks/spec riêng:
65
-
66
- ```bash
67
- aih new-change add-customer-search
68
- ```
31
+ Thêm `--capabilities uiux` khi cần UI/UX; `monetization` cho website có quảng cáo. [Danh mục đầy đủ](cli.md).
32
+ Với project đã cài, đổi lựa chọn trong `.harness/project.json` rồi dùng `update`.
69
33
 
70
- Đây là bản nháp trong `openspec/changes/add-customer-search/`, chưa phải spec được duyệt.
71
- AI ghi câu trả lời thực tế trong `decisions.json`; kiểm tra bằng `aih ready add-customer-search --stage implement`.
72
- Sau code, ghi bằng chứng trong `verification.json` và chạy với `--stage review`. Xem [Change readiness](change-readiness.md). Sửa nhỏ, ít rủi ro có thể bỏ qua full spec với lý do rõ ràng; không bắt mọi task tạo đủ BRD/PRD/SRS.
34
+ ## 2. Mở AI và giao việc
73
35
 
74
- `aih new-change` không cần OpenSpec CLI. Chỉ cài OpenSpec riêng khi cần validator/archive của công cụ đó; xem [OpenSpec](openspec.md).
36
+ Mở thư mục project trong công cụ AI, rồi gửi:
75
37
 
76
- ## 4. Kiểm tra đúng thứ
38
+ > Đọc AGENTS.md và .harness/local.md. Khảo sát code, tài liệu và lệnh test hiện có;
39
+ > ghi context còn thiếu vào .harness/local.md, chỉ hỏi phần chưa rõ.
40
+ > Thực hiện yêu cầu: [mô tả công việc]. Chạy test phù hợp, báo cáo kết quả và phần chưa kiểm chứng.
77
41
 
78
- | Lệnh | Ý nghĩa |
79
- | --- | --- |
80
- | `aih check` | Kiểm tra integrity của file Harness; không kiểm thử ứng dụng |
81
- | `aih doctor` | Kiểm tra công cụ và environment đã cấu hình; không chạy build/test |
82
- | `aih verify --scope all` | Xuất checklist, `executed: false`; không chạy build/test |
83
- | `aih eval --scope all` | Xuất tình huống và báo cáo chưa chấm; không gọi model |
84
- | Lệnh test của project | Do bạn, AI host hoặc CI thực chạy để xác minh code |
42
+ Bạn có thể giao ý tưởng, tài liệu BA hoặc task code. Không cần gọi từng agent/skill.
43
+ Với web/mobile, giao màn hình hoặc tính năng theo common/API/state/navigation hiện có; [skills đã có](frontend-mobile.md).
44
+ Nếu công cụ chưa tự nạp hướng dẫn, xem [cách cấu hình công cụ AI](tool-setup/README.md).
45
+ Lệnh `setup` chỉ xuất gợi ý thiết lập, không phải bước bắt buộc để bắt đầu.
85
46
 
86
- Một lần `aih check` thành công không có nghĩa tính năng đã đúng. Ghi lệnh test thực chạy, kết quả và phần chưa kiểm chứng trong PR. Xem [đánh giá hành vi AI](../evals/README.md) nếu muốn đo hiệu quả Harness.
47
+ Review diff và test, rồi commit `AGENTS.md`, `.harness/`, `.agents/skills/` cùng code.
48
+ Quy tắc riêng sửa trong `.harness/local.md`; giữ nguyên file do Harness quản lý.
49
+ Lệnh/tool chung lưu trong `.harness/environment.json`; đường dẫn riêng máy trong `.harness/machine.json` được Git ignore. [Cấu hình Maven/JDK](project-configuration.md).
50
+ Cấu hình model là tùy chọn trong `.harness/agents.json`; chọn model tương thích với công cụ AI: [hướng dẫn](agent-configuration.md).
87
51
 
88
- ## 5. Cập nhật: CLI trước, project sau
52
+ ## 3. Thêm tài liệu khi cần
89
53
 
90
- Trên branch riêng, commit trạng thái hiện tại trước. Với cách cài global ở trên:
54
+ Với `product` đã cài, tạo bản nháp yêu cầu:
91
55
 
92
56
  ```bash
93
- npm install -g @manhd_d/ai-harness@latest
94
- aih --version
95
- aih check
96
- aih update --dry-run
97
- aih update
98
- aih check
57
+ npx --yes @manhd_d/ai-harness new-doc prd-lite
99
58
  ```
100
59
 
101
- `aih --version` là phiên bản CLI; `aih check` trả phiên bản snapshot trong project. `aih update` lấy bundle từ CLI đang cài (hoặc `--source`), **không tự tải npm**. Review diff, chạy test ứng dụng và commit snapshot/lock cùng nhau. Nếu báo drift, giữ lại thay đổi trong Git, chuyển tùy chỉnh sang `.harness/local.md` và khôi phục managed files trước khi update.
60
+ Tính năng cần spec riêng: dùng `new-change <id>`; [hướng dẫn spec](change-readiness.md).
61
+ Task nhỏ không cần bộ tài liệu đầy đủ. Không cần cài OpenSpec CLI để tạo bản nháp.
102
62
 
103
- Nếu cài local trong project, dùng `npm install --save-dev @manhd_d/ai-harness@latest` và `npx aih` thay cho `aih`.
63
+ ## 4. Kiểm tra và cập nhật
104
64
 
105
- ## Đọc thêm theo nhu cầu
65
+ `check` kiểm tra file Harness; `verify` xuất checklist. Code cần **test của project** và review thực tế.
106
66
 
107
- - [CLI reference](cli.md) · [Full SDLC](end-to-end-workflow.md) · [Skill matrix](skill-matrix.md) · [Agent handoffs](agent-handoffs.md).
108
- - [Spring Boot API](examples/spring-boot-api.md) · [Full-stack](examples/fullstack-web.md) · [React Native](examples/react-native-app.md) · [Python AI/RAG](examples/ai-rag-service.md).
109
- - [Astro micro-tools](examples/astro-micro-tools.md) · [Astro + AdSense](examples/astro-adsense-microtools.md).
110
- - [Release guide](npm-release.md): dành cho maintainer; merge source không đồng nghĩa npm đã có bản mới.
67
+ Trước cập nhật, tạo branch và commit trạng thái hiện tại. Xem trước, áp dụng rồi kiểm tra:
111
68
 
112
- ## Coding conventions
113
-
114
- Trước code, áp dụng [Project conventions](project-conventions.md): xác định new/maintain/mixed theo module, đọc chuẩn hiện có, tìm common và ghi lý do tạo mới. AI lưu nguồn và quyết định trong `.harness/local.md`; không hỏi lại thông tin đã rõ.
115
-
116
- ## BA/PO/SA/PM and coding tools
117
-
118
- For a material new project choose `--capabilities product,architecture,delivery` with the actual adapter.
119
- Read [Solution workflow](solution-workflow.md) and the [setup guide for your coding tool](tool-setup/README.md).
120
- Skills/templates are selective context; use existing approved documents and compact notes when sufficient.
69
+ ```bash
70
+ npx --yes @manhd_d/ai-harness@latest update --dry-run
71
+ npx --yes @manhd_d/ai-harness@latest update
72
+ npx --yes @manhd_d/ai-harness@latest check
73
+ ```
121
74
 
122
- ## Agent model and execution preferences
75
+ Review diff và chạy test project trước khi commit. Nếu có conflict, xem [cách xử lý](cli.md).
76
+ Dùng thường xuyên có thể cài global: `npm install -g @manhd_d/ai-harness`, rồi dùng `aih` thay cho `npx --yes @manhd_d/ai-harness`. Nâng CLI global trước khi `aih update`.
123
77
 
124
- New installs seed `.harness/agents.json`: Sol recommended, hybrid/two concurrent agents only when
125
- supported; Luna low documentation, no automatic Astra escalation. Edit provider/model/reasoning and
126
- execution for your actual host. Use `aih setup --host codex` and [Agent configuration](agent-configuration.md).
127
- For a new economy consumer use `aih init --agent-preset economy`; never overwrite an existing config.
78
+ [Tra cứu & ví dụ theo nhu cầu](README.md).
@@ -1,6 +1,6 @@
1
- # Skill matrix — 64 skills, 13 nhóm module
1
+ # Skill matrix — 68 skills, 13 nhóm module
2
2
 
3
- Đây là bảng tra cứu **ID thật** theo `SKILL.md` trong source trên `main` (5 Core, 41 capability, 18 adapter). Dùng khi cần chuyển từ [Full SDLC](end-to-end-workflow.md) tới một skill cụ thể, không nạp toàn bộ 64 skill vào prompt.
3
+ Đây là bảng tra cứu **ID thật** theo `SKILL.md` trong source trên `main` (5 Core, 41 capability, 22 adapter). Dùng khi cần chuyển từ [Full SDLC](end-to-end-workflow.md) tới một skill cụ thể, không nạp toàn bộ 68 skill vào prompt.
4
4
 
5
5
  **Cách dùng:** `aih skills` xem skills đã cài, sau đó `aih skill harness-...` lấy nội dung. Danh mục này mô tả chức năng; **không** có nghĩa `aih` thực thi skills hoặc agent. Tech adapters và capabilities chỉ xuất hiện trong consumer khi được chọn; Core dùng chung.
6
6
 
@@ -84,17 +84,21 @@
84
84
  | [`harness-java-spring-kafka-outbox`](../adapters/java-spring/skills/harness-java-spring-kafka-outbox/SKILL.md) | Async events | Outbox transaction và consumer dedupe | Event implementation + failure tests |
85
85
  | [`harness-java-spring-spring-api`](../adapters/java-spring/skills/harness-java-spring-spring-api/SKILL.md) | Backend API | Authorization resource scoped, API contract | Endpoint + auth/contract tests |
86
86
 
87
- ## React / Next.js adapter (2)
87
+ ## React / Next.js adapter (4)
88
88
 
89
89
  | Skill ID (nguồn) | Khi nào dùng | Mục đích | Output mong đợi |
90
90
  | --- | --- | --- | --- |
91
+ | [`harness-react-nextjs-feature-delivery`](../adapters/react-nextjs/skills/harness-react-nextjs-feature-delivery/SKILL.md) | Feature implementation | Reuse route/screen, UI/form and API/state boundaries | AC-linked diff/checks, actual results and explicit limits |
92
+ | [`harness-react-nextjs-behavior-testing`](../adapters/react-nextjs/skills/harness-react-nextjs-behavior-testing/SKILL.md) | Behavior testing | Component/integration and actual browser/server evidence | AC-linked tests, actual results and explicit limits |
91
93
  | [`harness-react-nextjs-accessible-ui`](../adapters/react-nextjs/skills/harness-react-nextjs-accessible-ui/SKILL.md) | Frontend | UI states và semantic accessibility | UI + accessibility/browser evidence |
92
94
  | [`harness-react-nextjs-server-boundaries`](../adapters/react-nextjs/skills/harness-react-nextjs-server-boundaries/SKILL.md) | Frontend security | Server actions, auth/caching boundaries | Server/client diff + auth/cache tests |
93
95
 
94
- ## React Native adapter (2)
96
+ ## React Native adapter (4)
95
97
 
96
98
  | Skill ID (nguồn) | Khi nào dùng | Mục đích | Output mong đợi |
97
99
  | --- | --- | --- | --- |
100
+ | [`harness-react-native-screen-delivery`](../adapters/react-native/skills/harness-react-native-screen-delivery/SKILL.md) | Screen implementation | Reuse route/screen, UI/form and API/state boundaries | AC-linked diff/checks, actual results and explicit limits |
101
+ | [`harness-react-native-behavior-testing`](../adapters/react-native/skills/harness-react-native-behavior-testing/SKILL.md) | Behavior testing | JS/navigation and separate platform/device evidence | AC-linked tests, actual results and blocked native checks |
98
102
  | [`harness-react-native-device-permissions`](../adapters/react-native/skills/harness-react-native-device-permissions/SKILL.md) | Mobile | Permissions + deep links theo OS | Permission/nav changes + platform tests |
99
103
  | [`harness-react-native-offline-sync`](../adapters/react-native/skills/harness-react-native-offline-sync/SKILL.md) | Mobile | Offline queue, retries, conflict resolution | Persistence/sync + edge-case tests |
100
104
 
@@ -131,3 +131,12 @@ bundles use the CLI canonical seed if necessary. Existing configs are validated
131
131
  role gaps inherit/report project defaults. Inspect new payload/update diff; re-export eval reports after
132
132
  bundle changes. Revert consumer installation commit for rollback. Release update tests use relative
133
133
  versions instead of hardcoded 0.7.0, preserving downgrade refusal on future release branches.
134
+
135
+ ## Frontend/mobile coding and onboarding (unreleased)
136
+
137
+ React/Next.js and React Native module contracts advance from 1.1.0 to 1.2.0 additively: existing skill
138
+ IDs remain, feature/screen and behavior-testing skills plus manual checks/unscored cases are added.
139
+ Project/lock/agent schemas and the distribution version stay unchanged. Existing consumers run the
140
+ usual reviewed update dry-run/update/check; local.md, agents.json, native host config and app files are
141
+ project-owned and preserved. Re-export eval reports after bundle changes; revert the consumer install
142
+ commit for rollback. See [Frontend/mobile coding](frontend-mobile.md).
package/harness.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "name": "ai-harness",
4
- "version": "0.8.0",
4
+ "version": "0.9.0",
5
5
  "adapters": [
6
6
  "java-spring",
7
7
  "react-nextjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manhd_d/ai-harness",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Reusable AI development rules, skills and workflows with a safe local installer",
5
5
  "type": "module",
6
6
  "bin": {