all-hands-cli 0.1.0 → 0.1.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/.allhands/docs.json +1 -1
- package/.allhands/docs.local.json +5 -5
- package/.allhands/flows/DOCUMENTATION.md +4 -2
- package/.allhands/harness/src/commands/specs.ts +0 -7
- package/.allhands/harness/src/schemas/docs.schema.json +15 -4
- package/.github/workflows/npm-publish.yml +1 -1
- package/package.json +1 -1
package/.allhands/docs.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
2
|
+
"$schema": "harness/src/schemas/docs.schema.json",
|
|
3
3
|
"domains": [
|
|
4
4
|
{
|
|
5
5
|
"name": "harness",
|
|
6
|
-
"
|
|
6
|
+
"paths": [".allhands/harness"],
|
|
7
7
|
"description": "Core CLI tool with commands, hooks, TUI, MCP integration, and schema validation"
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"name": "flows",
|
|
11
|
-
"
|
|
11
|
+
"paths": [".allhands/flows"],
|
|
12
12
|
"description": "Workflow definitions guiding agents through tasks"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"name": "agents",
|
|
16
|
-
"
|
|
16
|
+
"paths": [".allhands/agents"],
|
|
17
17
|
"description": "Agent configuration YAML files defining agent types and behaviors"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"name": "sync-cli",
|
|
21
|
-
"
|
|
21
|
+
"paths": ["src"],
|
|
22
22
|
"description": "CLI for syncing the all-hands framework to other repositories"
|
|
23
23
|
}
|
|
24
24
|
],
|
|
@@ -73,13 +73,14 @@ Full documentation effort for new repos or out-of-sync docs.
|
|
|
73
73
|
2. **Domain Detection**
|
|
74
74
|
- Resolve docs config per **Config Resolution** above (optional — projects don't need either file)
|
|
75
75
|
- Load `domains` and `exclude` glob patterns from the resolved config
|
|
76
|
+
- Each domain has a `paths` property — either a single string or an array of strings indicating the source directories/files for that domain
|
|
76
77
|
- If domains not declared, infer:
|
|
77
78
|
- Run `tldr structure .` or `ah complexity .` on project root
|
|
78
79
|
- Check for monorepo markers: `pnpm-workspace.yaml`, `lerna.json`, `turbo.json`, `nx.json`
|
|
79
80
|
- If monorepo: each workspace package is a domain, plus root-level coordination docs
|
|
80
81
|
- Otherwise: identify main product areas from directory structure
|
|
81
82
|
- Present detected domains to user for confirmation
|
|
82
|
-
- Persist confirmed domains (and any existing `exclude` patterns) back to the resolved config file. Always write this file, whether user adjusted or accepted defaults — it codifies the domain map for future incremental runs.
|
|
83
|
+
- Persist confirmed domains (and any existing `exclude` patterns) back to the resolved config file. Always write this file, whether user adjusted or accepted defaults — it codifies the domain map for future incremental runs. Use array format for `paths` when persisting.
|
|
83
84
|
|
|
84
85
|
3. **Proceed to Core Flow** with:
|
|
85
86
|
```yaml
|
|
@@ -140,10 +141,11 @@ Per **Context is Precious**, spawn discovery sub-agents:
|
|
|
140
141
|
|
|
141
142
|
- One sub-agent per domain
|
|
142
143
|
- Instruct each to read `.allhands/flows/shared/DOCUMENTATION_DISCOVERY.md`
|
|
144
|
+
- Normalize `paths` to an array (if a single string, wrap it: `[path]`)
|
|
143
145
|
- Provide each:
|
|
144
146
|
```yaml
|
|
145
147
|
domain: "<domain-name>"
|
|
146
|
-
source_paths: ["<
|
|
148
|
+
source_paths: ["<path1>", "<path2>", ...] # all paths from domain.paths; or changed files in incremental
|
|
147
149
|
exclude: ["<glob>", ...] # from docs.json, may be empty
|
|
148
150
|
mode: "<fill-gaps|incremental>"
|
|
149
151
|
session_context: "<summary from alignment doc>" # incremental only
|
|
@@ -96,13 +96,6 @@ export async function reindexAfterMove(
|
|
|
96
96
|
{ path: newRelPath, added: true },
|
|
97
97
|
]);
|
|
98
98
|
}
|
|
99
|
-
|
|
100
|
-
// Update docs index: docs includes all of specs/
|
|
101
|
-
// Remove from old location, add to new location
|
|
102
|
-
await service.reindexFromChanges('docs', [
|
|
103
|
-
{ path: oldRelPath, deleted: true },
|
|
104
|
-
{ path: newRelPath, added: true },
|
|
105
|
-
]);
|
|
106
99
|
}
|
|
107
100
|
|
|
108
101
|
export function register(program: Command): void {
|
|
@@ -18,16 +18,27 @@
|
|
|
18
18
|
"type": "string",
|
|
19
19
|
"description": "Domain identifier used for docs folder naming"
|
|
20
20
|
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
21
|
+
"paths": {
|
|
22
|
+
"oneOf": [
|
|
23
|
+
{
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Single path to the source code for this domain"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": { "type": "string" },
|
|
30
|
+
"minItems": 1,
|
|
31
|
+
"description": "Array of paths to the source code for this domain"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"description": "Path(s) to the source code for this domain. Accepts a single string or an array of strings."
|
|
24
35
|
},
|
|
25
36
|
"description": {
|
|
26
37
|
"type": "string",
|
|
27
38
|
"description": "Brief description of what this domain contains"
|
|
28
39
|
}
|
|
29
40
|
},
|
|
30
|
-
"required": ["name", "
|
|
41
|
+
"required": ["name", "paths"],
|
|
31
42
|
"additionalProperties": false
|
|
32
43
|
}
|
|
33
44
|
},
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
- name: Ensure version is higher than published
|
|
31
31
|
run: |
|
|
32
32
|
CURRENT=$(node -p "require('./package.json').version")
|
|
33
|
-
LATEST=$(npm view all-hands version 2>/dev/null || echo "0.0.0")
|
|
33
|
+
LATEST=$(npm view all-hands-cli version 2>/dev/null || echo "0.0.0")
|
|
34
34
|
|
|
35
35
|
# Compare versions using node
|
|
36
36
|
NEEDS_BUMP=$(node -e "
|