coding-agent-harness 1.0.0 → 1.0.2
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 +19 -0
- package/README.en-US.md +14 -0
- package/README.md +111 -86
- package/README.zh-CN.md +270 -0
- package/SKILL.md +116 -189
- package/docs-release/README.md +72 -5
- package/docs-release/architecture/overview.md +286 -28
- package/docs-release/architecture/overview.zh-CN.md +288 -0
- package/docs-release/assets/dashboard-overview-en.png +0 -0
- package/docs-release/assets/harness-architecture.svg +163 -0
- package/docs-release/assets/harness-workflow.svg +64 -0
- package/docs-release/guides/agent-installation.en-US.md +214 -0
- package/docs-release/guides/agent-installation.md +123 -26
- package/docs-release/guides/document-audience-and-surfaces.en-US.md +112 -0
- package/docs-release/guides/document-audience-and-surfaces.md +112 -0
- package/docs-release/guides/full-legacy-migration-subagent-strategy.md +334 -0
- package/docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md +334 -0
- package/docs-release/guides/legacy-migration-agent-prompt.md +384 -0
- package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +361 -0
- package/docs-release/guides/migration-playbook.en-US.md +325 -0
- package/docs-release/guides/migration-playbook.md +329 -0
- package/docs-release/guides/parent-control-repository-pattern.en-US.md +252 -0
- package/docs-release/guides/parent-control-repository-pattern.md +252 -0
- package/docs-release/guides/repository-operating-models.en-US.md +196 -0
- package/docs-release/guides/repository-operating-models.md +196 -0
- package/docs-release/intl/README.md +15 -0
- package/docs-release/intl/de-DE.md +18 -0
- package/docs-release/intl/en-US.md +18 -0
- package/docs-release/intl/es-ES.md +18 -0
- package/docs-release/intl/fr-FR.md +18 -0
- package/docs-release/intl/ja-JP.md +18 -0
- package/docs-release/intl/ko-KR.md +18 -0
- package/docs-release/intl/zh-CN.md +18 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/brief.md +13 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/lesson_candidates.md +24 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +1 -1
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/task_plan.md +4 -2
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/{visual_roadmap.md → visual_map.md} +9 -1
- package/package.json +22 -1
- package/references/agents-md-pattern.md +3 -3
- package/references/docs-directory-standard.md +47 -3
- package/references/external-source-intake-standard.md +75 -0
- package/references/harness-ledger.md +5 -3
- package/references/legacy-12-phase-bootstrap.md +41 -0
- package/references/lessons-governance.md +23 -6
- package/references/planning-loop.md +41 -3
- package/references/project-onboarding-audit.md +10 -0
- package/references/repo-governance-standard.md +2 -0
- package/references/testing-standard.md +50 -0
- package/references/walkthrough-closeout.md +6 -5
- package/scripts/check-harness.mjs +76 -35
- package/scripts/harness.mjs +303 -12
- package/scripts/lib/capability-registry.mjs +533 -0
- package/scripts/lib/check-profiles.mjs +510 -0
- package/scripts/lib/core-shared.mjs +186 -0
- package/scripts/lib/dashboard-data.mjs +389 -0
- package/scripts/lib/dashboard-workbench.mjs +217 -0
- package/scripts/lib/dashboard-writer.mjs +93 -2
- package/scripts/lib/harness-core.mjs +10 -1318
- package/scripts/lib/lesson-maintenance.mjs +145 -0
- package/scripts/lib/markdown-utils.mjs +158 -0
- package/scripts/lib/migration-planner.mjs +478 -0
- package/scripts/lib/migration-support.mjs +312 -0
- package/scripts/lib/task-lifecycle.mjs +755 -0
- package/scripts/lib/task-scanner.mjs +682 -0
- package/scripts/smoke-dashboard.mjs +22 -0
- package/scripts/test-harness.mjs +928 -15
- package/templates/AGENTS.md.template +41 -30
- package/templates/architecture/Architecture-SSoT.md +21 -0
- package/templates/architecture/README.md +49 -0
- package/templates/architecture/critical-flows.md +22 -0
- package/templates/architecture/local-repo-context.md +20 -0
- package/templates/architecture/service-catalog.md +17 -0
- package/templates/architecture/services/service-template.md +31 -0
- package/templates/architecture/system-map.md +22 -0
- package/templates/dashboard/assets/app-src/00-state.js +41 -0
- package/templates/dashboard/assets/app-src/10-router.js +76 -0
- package/templates/dashboard/assets/app-src/20-overview.js +235 -0
- package/templates/dashboard/assets/app-src/30-tasks.js +563 -0
- package/templates/dashboard/assets/app-src/40-modules.js +58 -0
- package/templates/dashboard/assets/app-src/45-review.js +128 -0
- package/templates/dashboard/assets/app-src/50-migration.js +169 -0
- package/templates/dashboard/assets/app-src/60-shared.js +61 -0
- package/templates/dashboard/assets/app-src/90-bindings.js +382 -0
- package/templates/dashboard/assets/app.css +2575 -310
- package/templates/dashboard/assets/app.js +1498 -307
- package/templates/dashboard/assets/app.manifest.json +11 -0
- package/templates/dashboard/assets/i18n.js +429 -44
- package/templates/dashboard/assets/mermaid-renderer.js +58 -8
- package/templates/development/README.md +52 -0
- package/templates/development/codebase-map.md +11 -0
- package/templates/development/cross-repo-debugging.md +18 -0
- package/templates/development/external-context/service-template.md +33 -0
- package/templates/development/external-source-packs/README.md +24 -0
- package/templates/development/external-source-packs/digest-template.md +28 -0
- package/templates/development/local-setup.md +16 -0
- package/templates/development/stubs-and-mocks.md +11 -0
- package/templates/integrations/README.md +40 -0
- package/templates/integrations/api-contract.md +42 -0
- package/templates/integrations/event-contract.md +46 -0
- package/templates/integrations/third-party/vendor-template.md +42 -0
- package/templates/integrations/webhook-contract.md +41 -0
- package/templates/planning/brief.md +32 -0
- package/templates/planning/lesson_candidates.md +58 -0
- package/templates/planning/long-running-task-contract.md +7 -0
- package/templates/planning/module_brief.md +25 -0
- package/templates/planning/module_session_prompt.md +6 -0
- package/templates/planning/task_plan.md +7 -5
- package/templates/planning/{visual_roadmap.md → visual_map.md} +24 -2
- package/templates/reference/docs-library-standard.md +31 -0
- package/templates/reference/execution-workflow-standard.md +4 -2
- package/templates/reference/external-source-intake-standard.md +82 -0
- package/templates/reference/harness-ledger-standard.md +1 -0
- package/templates/reference/repo-governance-standard.md +6 -4
- package/templates/reference/walkthrough-standard.md +2 -1
- package/templates/walkthrough/walkthrough-template.md +2 -2
- package/templates-zh-CN/AGENTS.md.template +69 -70
- package/templates-zh-CN/architecture/Architecture-SSoT.md +21 -0
- package/templates-zh-CN/architecture/README.md +51 -0
- package/templates-zh-CN/architecture/critical-flows.md +24 -0
- package/templates-zh-CN/architecture/local-repo-context.md +20 -0
- package/templates-zh-CN/architecture/service-catalog.md +17 -0
- package/templates-zh-CN/architecture/services/service-template.md +31 -0
- package/templates-zh-CN/architecture/system-map.md +22 -0
- package/templates-zh-CN/development/README.md +54 -0
- package/templates-zh-CN/development/codebase-map.md +11 -0
- package/templates-zh-CN/development/cross-repo-debugging.md +18 -0
- package/templates-zh-CN/development/external-context/service-template.md +33 -0
- package/templates-zh-CN/development/external-source-packs/README.md +24 -0
- package/templates-zh-CN/development/external-source-packs/digest-template.md +28 -0
- package/templates-zh-CN/development/local-setup.md +16 -0
- package/templates-zh-CN/development/stubs-and-mocks.md +11 -0
- package/templates-zh-CN/integrations/README.md +42 -0
- package/templates-zh-CN/integrations/api-contract.md +42 -0
- package/templates-zh-CN/integrations/event-contract.md +46 -0
- package/templates-zh-CN/integrations/third-party/vendor-template.md +42 -0
- package/templates-zh-CN/integrations/webhook-contract.md +41 -0
- package/templates-zh-CN/planning/brief.md +32 -0
- package/templates-zh-CN/planning/lesson_candidates.md +58 -0
- package/templates-zh-CN/planning/long-running-task-contract.md +1 -1
- package/templates-zh-CN/planning/module_brief.md +25 -0
- package/templates-zh-CN/planning/module_plan.md +2 -2
- package/templates-zh-CN/planning/module_session_prompt.md +4 -3
- package/templates-zh-CN/planning/task_plan.md +10 -4
- package/templates-zh-CN/planning/{visual_roadmap.md → visual_map.md} +21 -2
- package/templates-zh-CN/reference/docs-library-standard.md +35 -0
- package/templates-zh-CN/reference/execution-workflow-standard.md +9 -2
- package/templates-zh-CN/reference/external-source-intake-standard.md +82 -0
- package/templates-zh-CN/reference/harness-ledger-standard.md +5 -2
- package/templates-zh-CN/reference/repo-governance-standard.md +2 -0
- package/templates-zh-CN/reference/walkthrough-standard.md +4 -4
- package/templates-zh-CN/walkthrough/Closeout-SSoT.md +2 -2
- package/templates-zh-CN/walkthrough/walkthrough-template.md +2 -2
- package/templates-zh-CN/dashboard/assets/app.css +0 -399
- package/templates-zh-CN/dashboard/assets/app.js +0 -435
- package/templates-zh-CN/dashboard/assets/i18n.js +0 -47
- package/templates-zh-CN/dashboard/assets/markdown-reader.js +0 -116
- package/templates-zh-CN/dashboard/assets/mermaid-renderer.js +0 -59
- package/templates-zh-CN/dashboard/index.html +0 -18
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# [Project Name]
|
|
2
2
|
|
|
3
|
-
This file is the operating
|
|
3
|
+
This file is the operating entry point for agents working in this repository.
|
|
4
|
+
Keep it as a charter and routing index. Detailed rules belong in
|
|
5
|
+
`docs/11-REFERENCE/`, not in this file.
|
|
4
6
|
|
|
5
7
|
## Project Profile
|
|
6
8
|
|
|
@@ -8,59 +10,66 @@ This file is the operating contract for agents working in this repository. Keep
|
|
|
8
10
|
- Stack: [language, framework, runtime]
|
|
9
11
|
- Repository shape: [single repo / monorepo / multi-repo]
|
|
10
12
|
- Primary modules: [module list]
|
|
11
|
-
-
|
|
13
|
+
- Default branch: [main / master / other]
|
|
12
14
|
|
|
13
15
|
## Non-Negotiable Rules
|
|
14
16
|
|
|
15
17
|
1. Preserve architecture boundaries documented in `docs/11-REFERENCE/engineering-standard.md`.
|
|
16
|
-
2. Do not
|
|
18
|
+
2. Do not commit secrets, credentials, private endpoints, or user data.
|
|
17
19
|
3. Start non-trivial work with a task directory under `docs/09-PLANNING/TASKS/`.
|
|
18
20
|
4. Record evidence before claiming completion.
|
|
19
|
-
5. Protect unrelated working-tree changes
|
|
20
|
-
6.
|
|
21
|
+
5. Protect unrelated working-tree changes; never revert files outside the assigned scope.
|
|
22
|
+
6. Commit verified, meaningful work slices unless the user explicitly says not to commit.
|
|
21
23
|
|
|
22
24
|
## Reading Matrix
|
|
23
25
|
|
|
26
|
+
Read the smallest context that can answer the task.
|
|
27
|
+
|
|
24
28
|
| Work Type | Read First |
|
|
25
29
|
| --- | --- |
|
|
26
30
|
| Architecture or core module change | `docs/11-REFERENCE/engineering-standard.md` |
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
+
| System map, service responsibility, or external system relationship | `docs/03-ARCHITECTURE/README.md`, `docs/03-ARCHITECTURE/service-catalog.md` |
|
|
32
|
+
| Local development, mocks, stubs, or cross-repo debugging | `docs/04-DEVELOPMENT/README.md`, `docs/04-DEVELOPMENT/codebase-map.md` |
|
|
33
|
+
| API, event, webhook, SDK, or third-party contract | `docs/06-INTEGRATIONS/README.md` and the related contract file |
|
|
34
|
+
| Tests, smoke, or regression | `docs/11-REFERENCE/testing-standard.md`, `docs/05-TEST-QA/Regression-SSoT.md` |
|
|
35
|
+
| Execution, commit, PR, or release work | `docs/11-REFERENCE/execution-workflow-standard.md`, `docs/11-REFERENCE/repo-governance-standard.md`, `docs/11-REFERENCE/ci-cd-standard.md` |
|
|
36
|
+
| Creating or advancing a task | Current task directory under `docs/09-PLANNING/TASKS/`; use the Harness CLI if this project has it configured |
|
|
37
|
+
| Brief, Execution Strategy, or Visual Map | Current task `brief.md`, `execution_strategy.md`, and `visual_map.md` |
|
|
31
38
|
| Long-running task | `docs/11-REFERENCE/long-running-task-standard.md` |
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
| Harness
|
|
39
|
+
| Reviewer, subagent, or adversarial review | `docs/11-REFERENCE/review-routing-standard.md`, `docs/11-REFERENCE/adversarial-review-standard.md` |
|
|
40
|
+
| Team, multi-repo, or staged delivery | `docs/11-REFERENCE/delivery-operating-model-standard.md`, `docs/09-PLANNING/Delivery-SSoT.md` |
|
|
41
|
+
| Module-parallel work | `docs/09-PLANNING/Module-Registry.md` and the related module plan |
|
|
42
|
+
| Documentation governance or Harness update | `docs/11-REFERENCE/docs-library-standard.md`, `.harness-capabilities.json` |
|
|
43
|
+
| External source material intake | `docs/11-REFERENCE/external-source-intake-standard.md` |
|
|
36
44
|
| Regression SSoT maintenance | `docs/11-REFERENCE/regression-ssot-governance.md` |
|
|
37
|
-
| Walkthrough, closeout, or lessons | `docs/11-REFERENCE/walkthrough-standard.md` |
|
|
45
|
+
| Walkthrough, closeout, or lessons | `docs/11-REFERENCE/walkthrough-standard.md`, `docs/10-WALKTHROUGH/Closeout-SSoT.md`, `docs/01-GOVERNANCE/Lessons-SSoT.md` |
|
|
38
46
|
| Worktree operations | `docs/11-REFERENCE/worktree-standard.md` |
|
|
39
47
|
|
|
40
48
|
## Standard Execution Flow
|
|
41
49
|
|
|
42
50
|
1. Confirm the request, scope, and affected files.
|
|
43
|
-
2.
|
|
44
|
-
3.
|
|
45
|
-
4.
|
|
46
|
-
5.
|
|
47
|
-
6.
|
|
48
|
-
7.
|
|
49
|
-
8.
|
|
50
|
-
9. Write
|
|
51
|
-
10.
|
|
52
|
-
|
|
53
|
-
##
|
|
51
|
+
2. For non-trivial work, create or update the task plan before editing code.
|
|
52
|
+
3. Load only the reference documents required by the Reading Matrix.
|
|
53
|
+
4. Preserve existing project facts; merge new context instead of overwriting history.
|
|
54
|
+
5. Use a worktree or branch when the task requires isolation or parallel work.
|
|
55
|
+
6. Implement only within the approved scope.
|
|
56
|
+
7. Run the relevant checks and capture evidence in the task records.
|
|
57
|
+
8. Route required review and close blocking findings.
|
|
58
|
+
9. Write or update the walkthrough and closeout records.
|
|
59
|
+
10. Update SSoT / ledger files that the task actually touched.
|
|
60
|
+
|
|
61
|
+
## Coordination Rules
|
|
54
62
|
|
|
55
63
|
- Reviewers are read-only unless explicitly assigned a write scope.
|
|
56
|
-
- Workers may edit only their assigned
|
|
57
|
-
-
|
|
58
|
-
-
|
|
64
|
+
- Workers may edit only their assigned branch, worktree, and file scope.
|
|
65
|
+
- Shared ledgers, registries, and SSoT files are coordinator-owned unless a lock is explicitly assigned.
|
|
66
|
+
- Worker handoff must include branch or worktree, changed files, checks, evidence, and residual risks.
|
|
59
67
|
|
|
60
|
-
## Single Sources
|
|
68
|
+
## Single Sources Of Truth
|
|
61
69
|
|
|
62
70
|
- Feature SSoT: `docs/09-PLANNING/Feature-SSoT.md`
|
|
63
71
|
- Delivery SSoT: `docs/09-PLANNING/Delivery-SSoT.md`
|
|
72
|
+
- Module Registry: `docs/09-PLANNING/Module-Registry.md`
|
|
64
73
|
- Regression SSoT: `docs/05-TEST-QA/Regression-SSoT.md`
|
|
65
74
|
- Cadence Ledger: `docs/05-TEST-QA/Cadence-Ledger.md`
|
|
66
75
|
- Lessons SSoT: `docs/01-GOVERNANCE/Lessons-SSoT.md`
|
|
@@ -79,4 +88,6 @@ This file is the operating contract for agents working in this repository. Keep
|
|
|
79
88
|
|
|
80
89
|
## Completion Standard
|
|
81
90
|
|
|
82
|
-
A task is complete only when the requested change is implemented, evidence is
|
|
91
|
+
A task is complete only when the requested change is implemented, evidence is
|
|
92
|
+
recorded, required reviews are resolved, and affected SSoT or ledger files are
|
|
93
|
+
updated.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Architecture SSoT
|
|
2
|
+
|
|
3
|
+
Context Doc Type: architecture-ssot
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## System Summary
|
|
9
|
+
|
|
10
|
+
[Describe the current repository and the larger system it participates in.]
|
|
11
|
+
|
|
12
|
+
## Current Architecture Facts
|
|
13
|
+
|
|
14
|
+
| ID | Fact | Source Evidence | Last Verified | Confidence | Read Before |
|
|
15
|
+
| --- | --- | --- | --- | --- | --- |
|
|
16
|
+
| ARCH-001 | [fact] | [code/doc/owner note/command] | unknown | low | [path] |
|
|
17
|
+
|
|
18
|
+
## Promotion Log
|
|
19
|
+
|
|
20
|
+
| Source Task | Promoted Fact | Destination | Decision | Date |
|
|
21
|
+
| --- | --- | --- | --- | --- |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
Context Doc Type: architecture-index
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
This folder is the system-structure source of truth. It explains what the current repository is, what larger system it belongs to, and which services, flows, and decisions matter before an agent changes code.
|
|
11
|
+
|
|
12
|
+
## Read Order
|
|
13
|
+
|
|
14
|
+
1. `Architecture-SSoT.md`
|
|
15
|
+
2. `local-repo-context.md`
|
|
16
|
+
3. `system-map.md`
|
|
17
|
+
4. `service-catalog.md`
|
|
18
|
+
5. `critical-flows.md`
|
|
19
|
+
6. `services/<service-key>.md`
|
|
20
|
+
7. `decisions/ADR-*.md`
|
|
21
|
+
|
|
22
|
+
## Boundary
|
|
23
|
+
|
|
24
|
+
- Put system structure, service responsibility, ownership, and critical flows here.
|
|
25
|
+
- Put payload bodies, endpoint parameters, event schemas, and SDK details in `docs/06-INTEGRATIONS/`.
|
|
26
|
+
- Put local setup, mocks, stubs, and cross-repo debugging notes in `docs/04-DEVELOPMENT/`.
|
|
27
|
+
|
|
28
|
+
## Structure Contract
|
|
29
|
+
|
|
30
|
+
| File / Path | Facts to maintain | Write rule |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `Architecture-SSoT.md` | Current architecture state, key decisions, known risks | Only long-lived system facts |
|
|
33
|
+
| `local-repo-context.md` | This repository's role and boundary in the wider system | Say what this repo owns and does not own |
|
|
34
|
+
| `system-map.md` | Service/module topology, upstream/downstream relationships, deployment boundaries | Use diagrams or tables for global relationships; do not write payload details |
|
|
35
|
+
| `service-catalog.md` | Service index; one row per service or microservice | Add a row first, then decide whether a profile file is needed |
|
|
36
|
+
| `services/<service-key>.md` | One service's responsibility, data, interface summary, and read-before links | One service per file; do not mix multiple services |
|
|
37
|
+
| `critical-flows.md` | Critical cross-service flows | Write business/system flow, not interface field details |
|
|
38
|
+
|
|
39
|
+
## Microservice Rule
|
|
40
|
+
|
|
41
|
+
For multi-service systems, `service-catalog.md` is the master index. Every known service should have at least one row. Create `services/<service-key>.md` for any service that affects development, debugging, integration, or task decisions in this repository.
|
|
42
|
+
|
|
43
|
+
Each `services/<service-key>.md` answers only three questions:
|
|
44
|
+
|
|
45
|
+
1. What does this service own, including data ownership.
|
|
46
|
+
2. How does it relate to this repository.
|
|
47
|
+
3. Which `04-DEVELOPMENT` and `06-INTEGRATIONS` docs must an agent read before changing this repository.
|
|
48
|
+
|
|
49
|
+
Do not put interface fields, mock instructions, or temporary debugging notes in `03-ARCHITECTURE`. Those belong in `06-INTEGRATIONS` and `04-DEVELOPMENT`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Critical Flows
|
|
2
|
+
|
|
3
|
+
Context Doc Type: critical-flows
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## Flow Index
|
|
9
|
+
|
|
10
|
+
| Flow ID | Name | Trigger | Services | Business Impact | Source Evidence | Last Verified | Confidence |
|
|
11
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
12
|
+
|
|
13
|
+
## Flow Template
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
sequenceDiagram
|
|
17
|
+
participant User
|
|
18
|
+
participant CurrentRepo
|
|
19
|
+
participant ExternalService
|
|
20
|
+
User->>CurrentRepo: request
|
|
21
|
+
CurrentRepo->>ExternalService: call
|
|
22
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Local Repo Context
|
|
2
|
+
|
|
3
|
+
Context Doc Type: local-repo-context
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## Responsibility
|
|
9
|
+
|
|
10
|
+
[State what this repository owns.]
|
|
11
|
+
|
|
12
|
+
## Main Components
|
|
13
|
+
|
|
14
|
+
| Component | Path | Responsibility | Source Evidence | Last Verified | Confidence |
|
|
15
|
+
| --- | --- | --- | --- | --- | --- |
|
|
16
|
+
|
|
17
|
+
## External Dependencies
|
|
18
|
+
|
|
19
|
+
| Dependency | Why It Matters | Architecture Link | Integration Link | Development Link |
|
|
20
|
+
| --- | --- | --- | --- | --- |
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Service Catalog
|
|
2
|
+
|
|
3
|
+
Context Doc Type: service-catalog
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## Services
|
|
9
|
+
|
|
10
|
+
| Service Key | Service / Component | Owner | Repo / Path | Responsibility | Interfaces | Data Owned | Dependencies | Service Profile | Development Context | Source Pack | Contract Index | Source Evidence | Last Verified | Stale After | Confidence |
|
|
11
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
12
|
+
|
|
13
|
+
## Boundary Rule
|
|
14
|
+
|
|
15
|
+
This catalog gives interface summaries and links only. Put payload bodies, auth rules, error codes, and event schemas in `docs/06-INTEGRATIONS/`.
|
|
16
|
+
|
|
17
|
+
Each service or microservice gets one row. If the service affects development or task decisions in this repository, add links to `services/<service-key>.md`, `docs/04-DEVELOPMENT/external-context/<service-key>.md`, and the relevant `docs/06-INTEGRATIONS/<contract>.md`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Service: <service-key>
|
|
2
|
+
|
|
3
|
+
Context Doc Type: service-profile
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## Index Links
|
|
9
|
+
|
|
10
|
+
| Catalog Row | Development Context | Source Pack | Integration Contracts | Last Verified | Confidence |
|
|
11
|
+
| --- | --- | --- | --- | --- | --- |
|
|
12
|
+
| `docs/03-ARCHITECTURE/service-catalog.md` | `docs/04-DEVELOPMENT/external-context/<service-key>.md` | `docs/04-DEVELOPMENT/external-source-packs/<source-key>/README.md` or N/A | `docs/06-INTEGRATIONS/<contract>.md` | unknown | low |
|
|
13
|
+
|
|
14
|
+
## Responsibility
|
|
15
|
+
|
|
16
|
+
[What this service owns.]
|
|
17
|
+
|
|
18
|
+
## Interfaces Summary
|
|
19
|
+
|
|
20
|
+
| Interface | Direction | Contract Link | Source Evidence | Last Verified | Confidence |
|
|
21
|
+
| --- | --- | --- | --- | --- | --- |
|
|
22
|
+
|
|
23
|
+
## Agent Read Before
|
|
24
|
+
|
|
25
|
+
- [architecture link]
|
|
26
|
+
- [development context link]
|
|
27
|
+
- [integration contract link]
|
|
28
|
+
|
|
29
|
+
## Placement Rule
|
|
30
|
+
|
|
31
|
+
This file describes one service only. Do not merge multiple services, payload details, mock instructions, or temporary debugging notes into this profile.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# System Map
|
|
2
|
+
|
|
3
|
+
Context Doc Type: system-map
|
|
4
|
+
Owner: project coordinator
|
|
5
|
+
Last Verified: unknown
|
|
6
|
+
Confidence: low
|
|
7
|
+
|
|
8
|
+
## Scope
|
|
9
|
+
|
|
10
|
+
[Describe the larger system boundary this repository belongs to.]
|
|
11
|
+
|
|
12
|
+
## Mermaid Map
|
|
13
|
+
|
|
14
|
+
```mermaid
|
|
15
|
+
flowchart LR
|
|
16
|
+
current["Current Repository"] --> external["External Service"]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Map Evidence
|
|
20
|
+
|
|
21
|
+
| Node | Meaning | Source Evidence | Last Verified | Confidence |
|
|
22
|
+
| --- | --- | --- | --- | --- |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const bundle = window.__HARNESS_DASHBOARD__ || {};
|
|
2
|
+
const defaultLocale = window.__HARNESS_LOCALE__ || ((navigator.language || "").toLowerCase().startsWith("zh") ? "zh" : "en");
|
|
3
|
+
let locale = localStorage.getItem("harness.locale") || defaultLocale;
|
|
4
|
+
if (!window.HarnessI18n?.[locale]) locale = "en";
|
|
5
|
+
let labels = window.HarnessI18n?.[locale] || {};
|
|
6
|
+
|
|
7
|
+
const state = {
|
|
8
|
+
query: "",
|
|
9
|
+
taskState: "all",
|
|
10
|
+
taskGroupMode: "migration",
|
|
11
|
+
taskPageByGroup: {},
|
|
12
|
+
taskGroupPage: 1,
|
|
13
|
+
warningFilter: "all",
|
|
14
|
+
warningPage: 1,
|
|
15
|
+
renderMode: "rendered",
|
|
16
|
+
theme: localStorage.getItem("harness.theme") || "system",
|
|
17
|
+
taskLayout: localStorage.getItem("harness.taskLayout") || "list",
|
|
18
|
+
runtime: { mode: "static", csrfToken: "", writableActions: [] },
|
|
19
|
+
runtimeLoaded: false,
|
|
20
|
+
runtimePoller: null,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const taskPageSize = 25;
|
|
24
|
+
const taskGroupsPerPage = 8;
|
|
25
|
+
const warningPageSize = 18;
|
|
26
|
+
|
|
27
|
+
const taskDocTabs = [
|
|
28
|
+
["brief", "brief.md"],
|
|
29
|
+
["taskPlan", "task_plan.md"],
|
|
30
|
+
["strategy", "execution_strategy.md"],
|
|
31
|
+
["visualMap", "visual_map.md"],
|
|
32
|
+
["legacyRoadmap", "visual_roadmap.md"],
|
|
33
|
+
["lessonCandidates", "lesson_candidates.md"],
|
|
34
|
+
["longRunningContract", "long-running-task-contract.md"],
|
|
35
|
+
["progress", "progress.md"],
|
|
36
|
+
["review", "review.md"],
|
|
37
|
+
["findings", "findings.md"],
|
|
38
|
+
["walkthrough", "__walkthrough__"],
|
|
39
|
+
["references", "references/INDEX.md"],
|
|
40
|
+
["artifacts", "artifacts/INDEX.md"],
|
|
41
|
+
];
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
function t(key) {
|
|
2
|
+
return labels[key] || key;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
function setLocale(nextLocale) {
|
|
6
|
+
locale = window.HarnessI18n?.[nextLocale] ? nextLocale : "en";
|
|
7
|
+
labels = window.HarnessI18n?.[locale] || {};
|
|
8
|
+
localStorage.setItem("harness.locale", locale);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function app() {
|
|
12
|
+
const systemTheme = window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
13
|
+
document.documentElement.dataset.theme = state.theme === "system" ? systemTheme : state.theme;
|
|
14
|
+
document.documentElement.lang = locale === "zh" ? "zh-CN" : "en";
|
|
15
|
+
const root = document.getElementById("app");
|
|
16
|
+
root.innerHTML = shell();
|
|
17
|
+
bind();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function shell() {
|
|
21
|
+
return `<div class="visibility-shell">
|
|
22
|
+
<header class="hero">
|
|
23
|
+
<div class="hero-copy">
|
|
24
|
+
<p class="eyebrow">${t("eyebrow")}</p>
|
|
25
|
+
<h1>${escapeHtml(projectName())} ${t("projectCockpit")}</h1>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="hero-actions">
|
|
28
|
+
${routeLink("#/", t("overview"), "overview")}
|
|
29
|
+
${routeLink("#/tasks", t("taskIndex"), "tasks")}
|
|
30
|
+
${routeLink("#/review", t("reviewQueue"), "review")}
|
|
31
|
+
${routeLink("#/modules", t("moduleView"), "modules")}
|
|
32
|
+
<button data-language-toggle>${locale === "zh" ? "EN" : "中文"}</button>
|
|
33
|
+
<button data-theme-toggle>${themeLabel()}</button>
|
|
34
|
+
</div>
|
|
35
|
+
</header>
|
|
36
|
+
${runtimeModeBanner()}
|
|
37
|
+
${renderRoute()}
|
|
38
|
+
<div id="drawer-overlay" class="drawer-overlay"></div>
|
|
39
|
+
<div id="task-drawer" class="task-drawer"></div>
|
|
40
|
+
</div>`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function runtimeModeBanner() {
|
|
44
|
+
if (window.__HARNESS_WORKBENCH__ === true) return "";
|
|
45
|
+
return `<section class="runtime-banner">
|
|
46
|
+
<strong>${t("staticReadOnly")}</strong>
|
|
47
|
+
<span>${t("staticReadOnlyDetail")}</span>
|
|
48
|
+
<code>harness dev</code>
|
|
49
|
+
</section>`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function renderRoute() {
|
|
53
|
+
const route = currentRoute();
|
|
54
|
+
if (route.name === "task") return taskDetail(route);
|
|
55
|
+
if (route.name === "reviewTask") return reviewWorkspace(route);
|
|
56
|
+
if (route.name === "review") return reviewQueue();
|
|
57
|
+
if (route.name === "modules") return modulesView(route.id);
|
|
58
|
+
if (route.name === "tasks") return taskIndex();
|
|
59
|
+
return overview();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function currentRoute() {
|
|
63
|
+
const hash = window.location.hash || "#/";
|
|
64
|
+
const parts = hash.replace(/^#\/?/, "").split("/").filter(Boolean).map(decodeURIComponent);
|
|
65
|
+
if (parts[0] === "tasks" && parts[1]) return { name: "task", id: parts[1], doc: parts[2] === "docs" ? parts[3] || "" : "" };
|
|
66
|
+
if (parts[0] === "review" && parts[1]) return { name: "reviewTask", id: parts[1] };
|
|
67
|
+
if (parts[0] === "review") return { name: "review" };
|
|
68
|
+
if (parts[0] === "modules") return { name: "modules", id: parts[1] || "" };
|
|
69
|
+
if (parts[0] === "tasks") return { name: "tasks" };
|
|
70
|
+
return { name: "overview" };
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function routeLink(hash, text, routeName) {
|
|
74
|
+
const active = currentRoute().name === routeName;
|
|
75
|
+
return `<a class="${active ? "active" : ""}" href="${hash}">${escapeHtml(text)}</a>`;
|
|
76
|
+
}
|