@duypham93/openkit 0.2.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 (178) hide show
  1. package/.opencode/README.md +47 -0
  2. package/.opencode/install-manifest.json +41 -0
  3. package/.opencode/lib/artifact-scaffolder.js +111 -0
  4. package/.opencode/lib/contract-consistency.js +218 -0
  5. package/.opencode/lib/parallel-execution-rules.js +261 -0
  6. package/.opencode/lib/runtime-paths.js +95 -0
  7. package/.opencode/lib/runtime-summary.js +82 -0
  8. package/.opencode/lib/state-guard.js +99 -0
  9. package/.opencode/lib/task-board-rules.js +375 -0
  10. package/.opencode/lib/work-item-store.js +280 -0
  11. package/.opencode/lib/workflow-state-controller.js +1739 -0
  12. package/.opencode/lib/workflow-state-rules.js +331 -0
  13. package/.opencode/opencode.json +93 -0
  14. package/.opencode/package.json +3 -0
  15. package/.opencode/tests/artifact-scaffolder.test.js +733 -0
  16. package/.opencode/tests/multi-work-item-runtime.test.js +369 -0
  17. package/.opencode/tests/parallel-execution-runtime.test.js +259 -0
  18. package/.opencode/tests/session-start-hook.test.js +357 -0
  19. package/.opencode/tests/state-guard.test.js +124 -0
  20. package/.opencode/tests/task-board-rules.test.js +204 -0
  21. package/.opencode/tests/work-item-store.test.js +380 -0
  22. package/.opencode/tests/workflow-behavior.test.js +149 -0
  23. package/.opencode/tests/workflow-contract-consistency.test.js +387 -0
  24. package/.opencode/tests/workflow-state-cli.test.js +1275 -0
  25. package/.opencode/tests/workflow-state-controller.test.js +1038 -0
  26. package/.opencode/work-items/feature-001/state.json +70 -0
  27. package/.opencode/work-items/index.json +13 -0
  28. package/.opencode/workflow-state.js +489 -0
  29. package/.opencode/workflow-state.json +70 -0
  30. package/AGENTS.md +265 -0
  31. package/README.md +401 -0
  32. package/agents/architect-agent.md +63 -0
  33. package/agents/ba-agent.md +56 -0
  34. package/agents/code-reviewer.md +77 -0
  35. package/agents/fullstack-agent.md +115 -0
  36. package/agents/master-orchestrator.md +60 -0
  37. package/agents/pm-agent.md +56 -0
  38. package/agents/qa-agent.md +124 -0
  39. package/agents/tech-lead-agent.md +60 -0
  40. package/assets/install-bundle/README.md +7 -0
  41. package/assets/install-bundle/opencode/README.md +11 -0
  42. package/assets/install-bundle/opencode/agents/ArchitectAgent.md +63 -0
  43. package/assets/install-bundle/opencode/agents/BAAgent.md +56 -0
  44. package/assets/install-bundle/opencode/agents/CodeReviewer.md +77 -0
  45. package/assets/install-bundle/opencode/agents/FullstackAgent.md +115 -0
  46. package/assets/install-bundle/opencode/agents/MasterOrchestrator.md +60 -0
  47. package/assets/install-bundle/opencode/agents/PMAgent.md +56 -0
  48. package/assets/install-bundle/opencode/agents/QAAgent.md +124 -0
  49. package/assets/install-bundle/opencode/agents/TechLeadAgent.md +60 -0
  50. package/assets/install-bundle/opencode/commands/brainstorm.md +44 -0
  51. package/assets/install-bundle/opencode/commands/delivery.md +45 -0
  52. package/assets/install-bundle/opencode/commands/execute-plan.md +44 -0
  53. package/assets/install-bundle/opencode/commands/migrate.md +61 -0
  54. package/assets/install-bundle/opencode/commands/quick-task.md +45 -0
  55. package/assets/install-bundle/opencode/commands/task.md +46 -0
  56. package/assets/install-bundle/opencode/commands/write-plan.md +50 -0
  57. package/assets/install-bundle/opencode/context/core/lane-selection.md +54 -0
  58. package/assets/install-bundle/opencode/skills/brainstorming/SKILL.md +51 -0
  59. package/assets/install-bundle/opencode/skills/code-review/SKILL.md +48 -0
  60. package/assets/install-bundle/opencode/skills/subagent-driven-development/SKILL.md +79 -0
  61. package/assets/install-bundle/opencode/skills/systematic-debugging/SKILL.md +61 -0
  62. package/assets/install-bundle/opencode/skills/test-driven-development/SKILL.md +48 -0
  63. package/assets/install-bundle/opencode/skills/using-skills/SKILL.md +39 -0
  64. package/assets/install-bundle/opencode/skills/verification-before-completion/SKILL.md +137 -0
  65. package/assets/install-bundle/opencode/skills/writing-plans/SKILL.md +68 -0
  66. package/assets/install-bundle/opencode/skills/writing-specs/SKILL.md +47 -0
  67. package/assets/opencode.json.template +11 -0
  68. package/assets/openkit-install.json.template +19 -0
  69. package/bin/openkit.js +9 -0
  70. package/commands/brainstorm.md +44 -0
  71. package/commands/delivery.md +45 -0
  72. package/commands/execute-plan.md +44 -0
  73. package/commands/migrate.md +61 -0
  74. package/commands/quick-task.md +45 -0
  75. package/commands/task.md +46 -0
  76. package/commands/write-plan.md +50 -0
  77. package/context/core/approval-gates.md +146 -0
  78. package/context/core/code-quality.md +42 -0
  79. package/context/core/issue-routing.md +85 -0
  80. package/context/core/lane-selection.md +54 -0
  81. package/context/core/project-config.md +143 -0
  82. package/context/core/session-resume.md +85 -0
  83. package/context/core/workflow-state-schema.md +224 -0
  84. package/context/core/workflow.md +442 -0
  85. package/context/navigation.md +94 -0
  86. package/docs/adr/README.md +6 -0
  87. package/docs/architecture/2026-03-20-task-intake-dashboard.md +54 -0
  88. package/docs/architecture/README.md +7 -0
  89. package/docs/briefs/2026-03-20-task-intake-dashboard.md +48 -0
  90. package/docs/briefs/README.md +7 -0
  91. package/docs/governance/README.md +25 -0
  92. package/docs/governance/adr-policy.md +27 -0
  93. package/docs/governance/definition-of-done.md +17 -0
  94. package/docs/governance/naming-conventions.md +21 -0
  95. package/docs/governance/severity-levels.md +12 -0
  96. package/docs/maintainer/README.md +51 -0
  97. package/docs/operations/README.md +79 -0
  98. package/docs/operations/internal-records/2026-03-24-release-checklist.md +79 -0
  99. package/docs/operations/internal-records/2026-03-24-simplified-install-ux.md +36 -0
  100. package/docs/operations/internal-records/README.md +18 -0
  101. package/docs/operations/runbooks/README.md +23 -0
  102. package/docs/operations/runbooks/openkit-daily-usage.md +288 -0
  103. package/docs/operations/runbooks/workflow-state-smoke-tests.md +302 -0
  104. package/docs/operator/README.md +50 -0
  105. package/docs/plans/2026-03-20-task-intake-dashboard.md +49 -0
  106. package/docs/plans/2026-03-21-openkit-full-delivery-multi-task-runtime.md +521 -0
  107. package/docs/plans/2026-03-23-openkit-global-install-runtime.md +157 -0
  108. package/docs/plans/README.md +7 -0
  109. package/docs/qa/2026-03-20-task-intake-dashboard.md +41 -0
  110. package/docs/qa/README.md +7 -0
  111. package/docs/specs/2026-03-20-task-intake-dashboard.md +50 -0
  112. package/docs/specs/2026-03-21-openkit-full-delivery-multi-task-runtime.md +462 -0
  113. package/docs/specs/README.md +7 -0
  114. package/docs/templates/README.md +36 -0
  115. package/docs/templates/adr-template.md +18 -0
  116. package/docs/templates/architecture-template.md +31 -0
  117. package/docs/templates/implementation-plan-template.md +32 -0
  118. package/docs/templates/migration-baseline-checklist.md +48 -0
  119. package/docs/templates/migration-plan-template.md +52 -0
  120. package/docs/templates/migration-report-template.md +74 -0
  121. package/docs/templates/migration-verify-checklist.md +39 -0
  122. package/docs/templates/product-brief-template.md +32 -0
  123. package/docs/templates/qa-report-template.md +37 -0
  124. package/docs/templates/quick-task-template.md +36 -0
  125. package/docs/templates/spec-template.md +31 -0
  126. package/hooks/hooks.json +16 -0
  127. package/hooks/session-start +162 -0
  128. package/package.json +24 -0
  129. package/registry.json +328 -0
  130. package/skills/brainstorming/SKILL.md +51 -0
  131. package/skills/code-review/SKILL.md +48 -0
  132. package/skills/subagent-driven-development/SKILL.md +79 -0
  133. package/skills/systematic-debugging/SKILL.md +61 -0
  134. package/skills/test-driven-development/SKILL.md +48 -0
  135. package/skills/using-skills/SKILL.md +39 -0
  136. package/skills/verification-before-completion/SKILL.md +137 -0
  137. package/skills/writing-plans/SKILL.md +68 -0
  138. package/skills/writing-specs/SKILL.md +47 -0
  139. package/src/audit/vietnamese-detection.js +259 -0
  140. package/src/cli/commands/detect-vietnamese.js +24 -0
  141. package/src/cli/commands/doctor.js +33 -0
  142. package/src/cli/commands/help.js +33 -0
  143. package/src/cli/commands/init.js +25 -0
  144. package/src/cli/commands/install-global.js +26 -0
  145. package/src/cli/commands/install.js +25 -0
  146. package/src/cli/commands/run.js +63 -0
  147. package/src/cli/commands/uninstall.js +32 -0
  148. package/src/cli/commands/upgrade.js +25 -0
  149. package/src/cli/conflict-output.js +19 -0
  150. package/src/cli/index.js +56 -0
  151. package/src/global/doctor.js +101 -0
  152. package/src/global/ensure-install.js +32 -0
  153. package/src/global/install-state.js +73 -0
  154. package/src/global/launcher.js +51 -0
  155. package/src/global/materialize.js +123 -0
  156. package/src/global/paths.js +85 -0
  157. package/src/global/uninstall.js +25 -0
  158. package/src/global/workspace-state.js +63 -0
  159. package/src/install/asset-manifest.js +284 -0
  160. package/src/install/conflicts.js +43 -0
  161. package/src/install/discovery.js +138 -0
  162. package/src/install/install-state.js +136 -0
  163. package/src/install/materialize.js +158 -0
  164. package/src/install/merge-policy.js +145 -0
  165. package/src/runtime/doctor.js +281 -0
  166. package/src/runtime/launcher.js +49 -0
  167. package/src/runtime/opencode-layering.js +135 -0
  168. package/src/runtime/openkit-managed-summary.js +27 -0
  169. package/tests/cli/openkit-cli.test.js +417 -0
  170. package/tests/global/doctor.test.js +130 -0
  171. package/tests/global/ensure-install.test.js +105 -0
  172. package/tests/install/discovery.test.js +124 -0
  173. package/tests/install/install-state.test.js +346 -0
  174. package/tests/install/materialize.test.js +244 -0
  175. package/tests/install/merge-policy.test.js +177 -0
  176. package/tests/runtime/doctor.test.js +430 -0
  177. package/tests/runtime/launcher.test.js +230 -0
  178. package/tests/runtime/module-boundary.test.js +16 -0
@@ -0,0 +1,32 @@
1
+ ---
2
+ artifact_type: implementation_plan
3
+ version: 1
4
+ status: draft
5
+ feature_id: FEATURE-000
6
+ feature_slug: example-feature
7
+ source_architecture: docs/architecture/YYYY-MM-DD-example-feature.md
8
+ owner: TechLeadAgent
9
+ approval_gate: tech_lead_to_fullstack
10
+ ---
11
+
12
+ # Implementation Plan: <Feature Name>
13
+
14
+ ## Goal
15
+
16
+ - State the implementation outcome this plan must deliver.
17
+
18
+ ## Dependencies
19
+
20
+ - List the upstream brief, spec, architecture, commands, or runtime constraints that matter.
21
+
22
+ ## Tasks
23
+
24
+ ### [ ] Task 1: <Task Name>
25
+ - Files:
26
+ - Goal:
27
+ - Validation:
28
+ - Notes:
29
+
30
+ ## Risks
31
+
32
+ ## Rollback Notes
@@ -0,0 +1,48 @@
1
+ # Migration Baseline Checklist
2
+
3
+ Use this checklist during `migration_baseline` to capture the current reality before any meaningful upgrade work starts.
4
+
5
+ ## Scope And Invariants
6
+
7
+ - [ ] Migration goal is stated in one sentence.
8
+ - [ ] Target stack or dependency destination is named explicitly.
9
+ - [ ] In-scope surfaces are listed.
10
+ - [ ] Out-of-scope surfaces are listed.
11
+ - [ ] Preserved layout expectations are recorded.
12
+ - [ ] Preserved flows and user journeys are recorded.
13
+ - [ ] Preserved contracts are recorded: API payloads, routes, events, schemas, permissions, storage shapes.
14
+ - [ ] Preserved core logic or business rules are recorded.
15
+ - [ ] Any allowed behavior change is explicitly documented as an exception.
16
+
17
+ ## Baseline Evidence
18
+
19
+ - [ ] Current versions of framework, runtime, and critical dependencies are recorded.
20
+ - [ ] Existing build, test, typecheck, lint, codemod, or smoke commands are listed if they exist.
21
+ - [ ] Missing validation tooling is called out honestly if commands do not exist.
22
+ - [ ] Critical screens or flows have baseline screenshots, notes, or equivalent evidence.
23
+ - [ ] Important request/response or contract samples are captured when relevant.
24
+ - [ ] Known warnings, deprecations, and fragile areas are recorded.
25
+
26
+ ## Coupling And Blockers
27
+
28
+ - [ ] Framework-coupled hotspots are identified.
29
+ - [ ] Lifecycle, routing, state, fetching, rendering, or side-effect patterns that block upgrade are identified.
30
+ - [ ] Business logic mixed into framework glue is identified.
31
+ - [ ] Candidate seams, adapters, or compatibility shims are listed.
32
+ - [ ] High-risk modules or pages are listed.
33
+
34
+ ## Risk And Sequencing Readiness
35
+
36
+ - [ ] Compatibility risks are listed.
37
+ - [ ] Rollback concerns are listed.
38
+ - [ ] Unknowns that require spike or investigation are listed.
39
+ - [ ] The work still fits migration semantics and is not drifting into rewrite or new-feature delivery.
40
+
41
+ ## Baseline Exit Gate
42
+
43
+ Baseline is ready for `migration_strategy` only when:
44
+
45
+ - preserved invariants are inspectable
46
+ - baseline evidence is concrete enough to compare later
47
+ - main blockers and likely seams are known
48
+ - the validation path is honest
@@ -0,0 +1,52 @@
1
+ ---
2
+ artifact_type: migration_plan
3
+ version: 1
4
+ status: draft
5
+ feature_id: FEATURE-000
6
+ feature_slug: example-migration
7
+ source_architecture: docs/architecture/YYYY-MM-DD-example-migration.md
8
+ owner: TechLeadAgent
9
+ approval_gate: strategy_to_upgrade
10
+ ---
11
+
12
+ # Migration Plan: <Migration Name>
13
+
14
+ ## Goal
15
+
16
+ - State the target migration or upgrade outcome and the intended end-state stack.
17
+
18
+ ## Preserved Invariants
19
+
20
+ - Layout or presentation details that must remain equivalent.
21
+ - Core flows, contracts, and business logic that must remain equivalent.
22
+ - Explicitly allowed behavior changes, if any.
23
+
24
+ ## Baseline Snapshot
25
+
26
+ - Current versions, important dependencies, runtime assumptions, and known fragile areas.
27
+
28
+ ## Migration Blockers And Seams
29
+
30
+ - Framework-coupled blockers that make direct upgrade unsafe.
31
+ - Seams, adapters, or compatibility shims to create before or during the migration.
32
+
33
+ ## Upgrade Sequence
34
+
35
+ ### [ ] Step 1: <Task Name>
36
+ - Files:
37
+ - Goal:
38
+ - Preserve:
39
+ - Seam or adapter work:
40
+ - Validation:
41
+ - Rollback checkpoint:
42
+ - Notes:
43
+
44
+ ## Compatibility Risks
45
+
46
+ ## Parity Verification
47
+
48
+ - Baseline evidence to compare against after each slice.
49
+ - Critical smoke or regression paths.
50
+ - Manual or automated checks that prove behavior equivalence.
51
+
52
+ ## Rollback Notes
@@ -0,0 +1,74 @@
1
+ ---
2
+ artifact_type: migration_report
3
+ version: 1
4
+ status: draft
5
+ feature_id: FEATURE-000
6
+ feature_slug: example-migration
7
+ owner: MasterOrchestrator
8
+ source_architecture: docs/architecture/YYYY-MM-DD-example-migration.md
9
+ source_plan: docs/plans/YYYY-MM-DD-example-migration.md
10
+ ---
11
+
12
+ # Migration Report: <Migration Name>
13
+
14
+ ## Goal
15
+
16
+ - State the migration objective and the intended target stack.
17
+
18
+ ## Preserved Invariants
19
+
20
+ - Layout or presentation expectations that must remain equivalent.
21
+ - Core flows, contracts, and business logic that must remain equivalent.
22
+ - Explicitly allowed behavior changes, if any.
23
+
24
+ ## Baseline Snapshot
25
+
26
+ - Current versions and critical dependency state.
27
+ - Existing validation commands, or a note that they do not exist.
28
+ - Baseline screenshots, notes, request/response samples, or equivalent evidence.
29
+ - Known warnings, deprecations, or fragile areas.
30
+
31
+ ## Migration Blockers And Seams
32
+
33
+ - Framework-coupled blockers that make direct upgrade unsafe.
34
+ - Candidate seams, adapters, or compatibility shims.
35
+ - High-risk modules, pages, or integration points.
36
+
37
+ ## Strategy
38
+
39
+ - Chosen migration approach.
40
+ - Slice order and rollback checkpoints.
41
+ - Validation approach for each slice.
42
+
43
+ ## Execution Log
44
+
45
+ ### Slice 1: <Task Name>
46
+ - Goal:
47
+ - Files or surfaces touched:
48
+ - Seam or adapter work:
49
+ - Upgrade work:
50
+ - Validation:
51
+ - Result:
52
+ - Rollback note:
53
+
54
+ ## Verification Summary
55
+
56
+ - Versions actually landed.
57
+ - Parity checks completed.
58
+ - Manual and automated evidence.
59
+ - Remaining adapters or shims.
60
+
61
+ ## Issues And Risks
62
+
63
+ ### ISSUE-001: <Title>
64
+ - Type:
65
+ - Severity:
66
+ - Rooted In:
67
+ - Recommendation:
68
+ - Evidence:
69
+
70
+ ## Conclusion
71
+
72
+ - Overall migration status: PASS | FAIL | PARTIAL
73
+ - Ready for `migration_done`: yes | no
74
+ - Follow-up cleanup or escalation notes.
@@ -0,0 +1,39 @@
1
+ # Migration Verify Checklist
2
+
3
+ Use this checklist during `migration_verify` to judge whether the upgraded system still preserves the intended behavior under the new stack.
4
+
5
+ ## Upgrade Outcome
6
+
7
+ - [ ] Target framework or dependency versions match the migration goal.
8
+ - [ ] Planned upgrade slices were completed or deferred explicitly.
9
+ - [ ] Temporary adapters or shims still present are listed with follow-up intent.
10
+
11
+ ## Parity Checks
12
+
13
+ - [ ] Preserved layout expectations still hold.
14
+ - [ ] Preserved user flows still hold.
15
+ - [ ] Preserved contracts still hold: API payloads, routes, events, schemas, permissions, storage shapes.
16
+ - [ ] Preserved core logic or business rules still hold.
17
+ - [ ] Any approved exception is still the only intentional behavior difference.
18
+
19
+ ## Validation Evidence
20
+
21
+ - [ ] Build, test, typecheck, lint, codemod, or smoke evidence is recorded when tooling exists.
22
+ - [ ] Manual regression evidence is recorded for flows not covered by automation.
23
+ - [ ] Before/after screenshots, notes, or equivalent parity evidence are attached or referenced when relevant.
24
+ - [ ] Performance or runtime warnings introduced by the migration are recorded when relevant.
25
+
26
+ ## Issue Classification
27
+
28
+ - [ ] Remaining defects are classified as implementation fallout, migration-strategy flaw, or requirement ambiguity.
29
+ - [ ] Open risks and deferred items are listed.
30
+ - [ ] Escalation to `full` is recommended if the issue is no longer primarily a technical migration problem.
31
+
32
+ ## Verify Exit Gate
33
+
34
+ Migration is ready for `migration_done` only when:
35
+
36
+ - parity evidence is inspectable
37
+ - remaining issues are resolved or explicitly routed
38
+ - rollback and residual-risk notes are clear
39
+ - `migration_verified` can be approved honestly
@@ -0,0 +1,32 @@
1
+ ---
2
+ artifact_type: product_brief
3
+ version: 1
4
+ status: draft
5
+ feature_id: FEATURE-000
6
+ feature_slug: example-feature
7
+ source_request: "Link or quote the originating user request"
8
+ owner: PMAgent
9
+ approval_gate: pm_to_ba
10
+ ---
11
+
12
+ # Product Brief: <Feature Name>
13
+
14
+ ## Goal
15
+
16
+ ## Target Users
17
+
18
+ ## Problem Statement
19
+
20
+ ## High-Level Features
21
+ - [ ]
22
+
23
+ ## Priorities
24
+ - P0:
25
+ - P1:
26
+ - P2:
27
+
28
+ ## Success Metrics
29
+
30
+ ## Out of Scope
31
+
32
+ ## Open Questions
@@ -0,0 +1,37 @@
1
+ ---
2
+ artifact_type: qa_report
3
+ version: 1
4
+ status: draft
5
+ feature_id: FEATURE-000
6
+ feature_slug: example-feature
7
+ source_plan: docs/plans/YYYY-MM-DD-example-feature.md
8
+ owner: QAAgent
9
+ approval_gate: qa_to_done
10
+ ---
11
+
12
+ # QA Report: <Feature Name>
13
+
14
+ ## Overall Status
15
+ - PASS | FAIL
16
+
17
+ ## Spec Compliance
18
+
19
+ | Acceptance Criteria | Result | Notes |
20
+ | --- | --- | --- |
21
+ | | | |
22
+
23
+ ## Quality Checks
24
+
25
+ ## Test Evidence
26
+
27
+ ## Issues
28
+
29
+ ### ISSUE-001: <Title>
30
+ - Type:
31
+ - Severity:
32
+ - Rooted In:
33
+ - Recommended Owner:
34
+ - Evidence:
35
+ - Recommendation:
36
+
37
+ ## Conclusion
@@ -0,0 +1,36 @@
1
+ ---
2
+ artifact_type: quick_task_card
3
+ version: 1
4
+ status: draft
5
+ feature_id: TASK-000
6
+ feature_slug: example-task
7
+ owner: MasterOrchestrator
8
+ mode: quick
9
+ approval_gate: quick_verified
10
+ ---
11
+
12
+ # Quick Task: <Task Name>
13
+
14
+ ## Goal
15
+
16
+ - State the smallest useful outcome this quick task must achieve.
17
+
18
+ ## Scope
19
+
20
+ - List the files, surfaces, or boundaries this task is allowed to touch.
21
+
22
+ ## Acceptance Bullets
23
+ - [ ]
24
+
25
+ ## Risk Note
26
+
27
+ ## Verification Path
28
+
29
+ - Record the real command or manual check that will be used.
30
+
31
+ ## Touched Files
32
+ -
33
+
34
+ ## Verification Result
35
+
36
+ ## Escalation Note
@@ -0,0 +1,31 @@
1
+ ---
2
+ artifact_type: specification
3
+ version: 1
4
+ status: draft
5
+ feature_id: FEATURE-000
6
+ feature_slug: example-feature
7
+ source_brief: docs/briefs/YYYY-MM-DD-example-feature.md
8
+ owner: BAAgent
9
+ approval_gate: ba_to_architect
10
+ ---
11
+
12
+ # Spec: <Feature Name>
13
+
14
+ ## Summary
15
+
16
+ ## User Stories
17
+
18
+ ### US-001: <Title>
19
+ As a <user type>, I want <action>, so that <benefit>.
20
+
21
+ **Acceptance Criteria**
22
+ - Given ... When ... Then ...
23
+
24
+ **Edge Cases**
25
+ -
26
+
27
+ ## Non-Functional Requirements
28
+
29
+ ## Out of Scope
30
+
31
+ ## Open Questions
@@ -0,0 +1,16 @@
1
+ {
2
+ "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "matcher": "startup|clear|compact",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "\"${OPENCODE_PLUGIN_ROOT:-$(pwd)}/hooks/session-start\"",
10
+ "async": false
11
+ }
12
+ ]
13
+ }
14
+ ]
15
+ }
16
+ }
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This script runs when an AI session starts.
4
+ # It teaches the agent how to use the Skills library by injecting the meta-skill.
5
+
6
+ set -e
7
+
8
+ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9
+ KIT_ROOT="${OPENKIT_KIT_ROOT:-$(dirname "$DIR")}"
10
+ PROJECT_ROOT="${OPENKIT_PROJECT_ROOT:-$(pwd)}"
11
+ META_SKILL_PATH="$KIT_ROOT/skills/using-skills/SKILL.md"
12
+ STATE_PATH="${OPENKIT_WORKFLOW_STATE:-$PROJECT_ROOT/.opencode/workflow-state.json}"
13
+ MANIFEST_PATH="$KIT_ROOT/.opencode/opencode.json"
14
+ PYTHON_BIN="${OPENKIT_PYTHON_BIN:-python3}"
15
+ RUNTIME_SUMMARY_MODULE="$KIT_ROOT/.opencode/lib/runtime-summary.js"
16
+
17
+ KIT_NAME="OpenKit AI Software Factory"
18
+ KIT_VERSION="unknown"
19
+ ENTRY_AGENT="unknown"
20
+ JSON_HELPER_STATUS="ok"
21
+
22
+ if [ -f "$MANIFEST_PATH" ] && command -v "$PYTHON_BIN" >/dev/null 2>&1; then
23
+ KIT_INFO_RAW=$("$PYTHON_BIN" - "$MANIFEST_PATH" <<'PY' || true
24
+ import json
25
+ import sys
26
+
27
+ manifest_path = sys.argv[1]
28
+
29
+ try:
30
+ with open(manifest_path, "r", encoding="utf-8") as fh:
31
+ manifest = json.load(fh)
32
+ except Exception:
33
+ sys.exit(0)
34
+
35
+ kit = manifest.get("kit") or {}
36
+ print(kit.get("name", "OpenKit AI Software Factory"))
37
+ print(kit.get("version", "unknown"))
38
+ print(kit.get("entryAgent", "unknown"))
39
+ PY
40
+ )
41
+ KIT_INFO_1=$(printf '%s\n' "$KIT_INFO_RAW" | sed -n '1p')
42
+ KIT_INFO_2=$(printf '%s\n' "$KIT_INFO_RAW" | sed -n '2p')
43
+ KIT_INFO_3=$(printf '%s\n' "$KIT_INFO_RAW" | sed -n '3p')
44
+ if [ -n "$KIT_INFO_1" ] && [ -n "$KIT_INFO_2" ] && [ -n "$KIT_INFO_3" ]; then
45
+ KIT_NAME="$KIT_INFO_1"
46
+ KIT_VERSION="$KIT_INFO_2"
47
+ ENTRY_AGENT="$KIT_INFO_3"
48
+ else
49
+ JSON_HELPER_STATUS="degraded"
50
+ fi
51
+ elif [ -f "$MANIFEST_PATH" ]; then
52
+ JSON_HELPER_STATUS="degraded"
53
+ fi
54
+
55
+ if [ -n "${OPENKIT_SESSION_START_NO_SKILL:-}" ]; then
56
+ SKILL_STATUS="skipped"
57
+ elif [ -f "$META_SKILL_PATH" ]; then
58
+ SKILL_STATUS="loaded"
59
+ else
60
+ SKILL_STATUS="missing"
61
+ fi
62
+
63
+ echo "<openkit_runtime_status>"
64
+ echo "kit: $KIT_NAME v$KIT_VERSION"
65
+ echo "entry agent: $ENTRY_AGENT"
66
+ echo "state file: $STATE_PATH"
67
+ echo "startup skill: $SKILL_STATUS"
68
+ echo "json helper: $JSON_HELPER_STATUS"
69
+ echo "help: node .opencode/workflow-state.js status"
70
+ echo "doctor: node .opencode/workflow-state.js doctor"
71
+ echo "show: node .opencode/workflow-state.js show"
72
+ echo "</openkit_runtime_status>"
73
+
74
+ if [ -z "${OPENKIT_SESSION_START_NO_SKILL:-}" ] && [ -f "$META_SKILL_PATH" ]; then
75
+ echo "<skill_system_instruction>"
76
+ echo "You are running within the Open Kit AI Software Factory framework."
77
+ echo "Below are the rules for how you must discover and invoke your skills."
78
+ echo ""
79
+ cat "$META_SKILL_PATH"
80
+ echo "</skill_system_instruction>"
81
+ fi
82
+
83
+ if [ -f "$STATE_PATH" ] && [ "$JSON_HELPER_STATUS" = "ok" ] && command -v "$PYTHON_BIN" >/dev/null 2>&1; then
84
+ "$PYTHON_BIN" - "$STATE_PATH" "$RUNTIME_SUMMARY_MODULE" <<'PY' || true
85
+ import json
86
+ import os
87
+ import pathlib
88
+ import subprocess
89
+ import sys
90
+
91
+ state_path = sys.argv[1]
92
+ runtime_summary_module = sys.argv[2]
93
+ runtime_root = str(pathlib.Path(state_path).resolve().parents[1])
94
+
95
+ try:
96
+ with open(state_path, "r", encoding="utf-8") as fh:
97
+ state = json.load(fh)
98
+ except Exception:
99
+ sys.exit(0)
100
+
101
+ mode = state.get("mode")
102
+ stage = state.get("current_stage")
103
+ status = state.get("status")
104
+ owner = state.get("current_owner")
105
+ feature_id = state.get("feature_id")
106
+ feature_slug = state.get("feature_slug")
107
+ work_item_id = state.get("work_item_id")
108
+
109
+ if not all([mode, stage, status, owner]):
110
+ sys.exit(0)
111
+
112
+ task_summary = None
113
+ active_tasks = []
114
+
115
+ if mode == "full" and work_item_id:
116
+ try:
117
+ node_cmd = [
118
+ "node",
119
+ "-e",
120
+ (
121
+ "const { getRuntimeContext } = require(process.argv[1]);"
122
+ "const context = getRuntimeContext(process.argv[2], JSON.parse(process.argv[3]));"
123
+ "process.stdout.write(JSON.stringify(context));"
124
+ ),
125
+ runtime_summary_module,
126
+ runtime_root,
127
+ json.dumps(state),
128
+ ]
129
+ result = subprocess.run(node_cmd, check=True, capture_output=True, text=True)
130
+ runtime_context = json.loads(result.stdout.strip() or "{}")
131
+ board_summary = runtime_context.get("taskBoardSummary")
132
+ if board_summary:
133
+ task_summary = (
134
+ f"task board: {board_summary.get('total', 0)} tasks | "
135
+ f"ready {board_summary.get('ready', 0)} | active {board_summary.get('active', 0)}"
136
+ )
137
+ active_tasks = board_summary.get("activeTasks") or []
138
+ except Exception:
139
+ task_summary = None
140
+ active_tasks = []
141
+
142
+ print("<workflow_resume_hint>")
143
+ print("OpenKit workflow resume context detected.")
144
+ print(f"mode: {mode}")
145
+ print(f"stage: {stage}")
146
+ print(f"status: {status}")
147
+ print(f"owner: {owner}")
148
+ if feature_id and feature_slug:
149
+ print(f"work item: {feature_id} ({feature_slug})")
150
+ if work_item_id:
151
+ print(f"active work item id: {work_item_id}")
152
+ if task_summary:
153
+ print(task_summary)
154
+ if active_tasks:
155
+ print(f"active tasks: {'; '.join(active_tasks)}")
156
+ print("Read first: AGENTS.md -> context/navigation.md -> context/core/workflow.md -> .opencode/workflow-state.json")
157
+ print("Then load resume guidance from context/core/session-resume.md.")
158
+ if mode == "full" and active_tasks:
159
+ print("Parallel task support is not yet assumed safe by this hook; confirm with `node .opencode/workflow-state.js doctor` before relying on it.")
160
+ print("</workflow_resume_hint>")
161
+ PY
162
+ fi
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@duypham93/openkit",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "files": [
6
+ ".opencode/",
7
+ "agents/",
8
+ "assets/",
9
+ "bin/",
10
+ "commands/",
11
+ "context/",
12
+ "docs/",
13
+ "hooks/",
14
+ "skills/",
15
+ "src/",
16
+ "tests/",
17
+ "AGENTS.md",
18
+ "README.md",
19
+ "registry.json"
20
+ ],
21
+ "bin": {
22
+ "openkit": "bin/openkit.js"
23
+ }
24
+ }