create-hq 5.1.0 → 5.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.
- package/dist/deps.d.ts +2 -2
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +138 -29
- package/dist/deps.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +16 -26
- package/dist/scaffold.js.map +1 -1
- package/dist/ui.js +1 -1
- package/package.json +3 -6
- package/template/.claude/CLAUDE.md +0 -202
- package/template/.claude/commands/checkpoint.md +0 -127
- package/template/.claude/commands/cleanup.md +0 -307
- package/template/.claude/commands/execute-task.md +0 -440
- package/template/.claude/commands/exit-plan.md +0 -41
- package/template/.claude/commands/handoff.md +0 -97
- package/template/.claude/commands/learn.md +0 -218
- package/template/.claude/commands/metrics.md +0 -118
- package/template/.claude/commands/newworker.md +0 -162
- package/template/.claude/commands/nexttask.md +0 -67
- package/template/.claude/commands/prd.md +0 -238
- package/template/.claude/commands/reanchor.md +0 -51
- package/template/.claude/commands/remember.md +0 -126
- package/template/.claude/commands/run-project.md +0 -348
- package/template/.claude/commands/run.md +0 -110
- package/template/.claude/commands/search-reindex.md +0 -62
- package/template/.claude/commands/search.md +0 -100
- package/template/.claude/commands/setup.md +0 -381
- package/template/.claude/scripts/pure-ralph-loop.ps1 +0 -312
- package/template/.claude/scripts/pure-ralph-loop.sh +0 -859
- package/template/CHANGELOG.md +0 -220
- package/template/LICENSE +0 -21
- package/template/MIGRATION.md +0 -259
- package/template/README.md +0 -368
- package/template/data/journal/.gitkeep +0 -0
- package/template/docs/images/ascii-banner-options.md +0 -122
- package/template/docs/images/hq-banner.svg +0 -105
- package/template/knowledge/Ralph/01-overview.md +0 -71
- package/template/knowledge/Ralph/02-core-concepts.md +0 -114
- package/template/knowledge/Ralph/03-how-ralph-works.md +0 -184
- package/template/knowledge/Ralph/04-back-pressure.md +0 -222
- package/template/knowledge/Ralph/05-specifications.md +0 -210
- package/template/knowledge/Ralph/06-agents-md.md +0 -222
- package/template/knowledge/Ralph/07-implementation.md +0 -316
- package/template/knowledge/Ralph/08-economics.md +0 -182
- package/template/knowledge/Ralph/09-resources.md +0 -145
- package/template/knowledge/Ralph/10-claude-code-workflow.md +0 -212
- package/template/knowledge/Ralph/11-team-training-guide.md +0 -383
- package/template/knowledge/Ralph/README.md +0 -40
- package/template/knowledge/ai-security-framework/CONTRIBUTING.md +0 -139
- package/template/knowledge/ai-security-framework/GLOSSARY.md +0 -176
- package/template/knowledge/ai-security-framework/LICENSE +0 -21
- package/template/knowledge/ai-security-framework/QUICK-START.md +0 -172
- package/template/knowledge/ai-security-framework/README.md +0 -232
- package/template/knowledge/ai-security-framework/checklists/browser-security.md +0 -301
- package/template/knowledge/ai-security-framework/checklists/credential-isolation.md +0 -322
- package/template/knowledge/ai-security-framework/checklists/incident-response.md +0 -288
- package/template/knowledge/ai-security-framework/checklists/pre-flight.md +0 -249
- package/template/knowledge/ai-security-framework/checklists/weekly-audit.md +0 -159
- package/template/knowledge/ai-security-framework/configs/audit-logging.md +0 -372
- package/template/knowledge/ai-security-framework/configs/kill-switches.md +0 -354
- package/template/knowledge/ai-security-framework/docs/01-core-principles.md +0 -256
- package/template/knowledge/ai-security-framework/docs/02-threat-landscape.md +0 -326
- package/template/knowledge/ai-security-framework/docs/03-security-posture.md +0 -250
- package/template/knowledge/ai-security-framework/templates/agents-security.md +0 -233
- package/template/knowledge/design-styles/README.md +0 -42
- package/template/knowledge/design-styles/american-industrial.md +0 -136
- package/template/knowledge/design-styles/ethereal-abstract.md +0 -133
- package/template/knowledge/design-styles/liminal-portal.md +0 -111
- package/template/knowledge/design-styles/swipes/american-industrial/G-3m4YPW0AADdu2.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G-JJlt5WwAABK3K.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G-JJmj5W0AEbJ-7.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ (1).jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G7fVkn3WEAAM-ST.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G8ECO5JWEAIksyn.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G9-3GQSWoAA8eqZ.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G9xEOqrXkAEZRcs.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G_MVeJrXQAA8sx4.jpeg +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/G_RSkmGXkAAgAVZ.png +0 -0
- package/template/knowledge/design-styles/swipes/american-industrial/README.md +0 -31
- package/template/knowledge/design-styles/swipes/american-industrial/qyqtg7Dq.png +0 -0
- package/template/knowledge/dev-team/README.md +0 -35
- package/template/knowledge/dev-team/patterns/README.md +0 -34
- package/template/knowledge/dev-team/patterns/frontend/react-best-practices.md +0 -178
- package/template/knowledge/dev-team/troubleshooting/README.md +0 -31
- package/template/knowledge/dev-team/workflows/README.md +0 -49
- package/template/knowledge/hq/checkpoint-schema.json +0 -51
- package/template/knowledge/hq/index-md-spec.md +0 -74
- package/template/knowledge/hq/thread-schema.md +0 -153
- package/template/knowledge/hq-core/checkpoint-schema.json +0 -51
- package/template/knowledge/hq-core/index-md-spec.md +0 -74
- package/template/knowledge/hq-core/thread-schema.md +0 -153
- package/template/knowledge/loom/README.md +0 -51
- package/template/knowledge/loom/architecture.md +0 -125
- package/template/knowledge/loom/code-style.md +0 -169
- package/template/knowledge/loom/llm-proxy.md +0 -132
- package/template/knowledge/loom/state-machine.md +0 -131
- package/template/knowledge/loom/thread-system.md +0 -117
- package/template/knowledge/loom/tools.md +0 -94
- package/template/knowledge/loom/weaver.md +0 -96
- package/template/knowledge/loom/web-frontend.md +0 -131
- package/template/knowledge/projects/README.md +0 -72
- package/template/knowledge/projects/templates/README.template.md +0 -28
- package/template/knowledge/workers/README.md +0 -195
- package/template/knowledge/workers/ralph-loop-pattern.md +0 -157
- package/template/knowledge/workers/skill-schema.md +0 -182
- package/template/knowledge/workers/state-machine.md +0 -102
- package/template/knowledge/workers/templates/base-worker.yaml +0 -73
- package/template/knowledge/workers/templates/code-worker.yaml +0 -85
- package/template/knowledge/workers/templates/skill.yaml +0 -49
- package/template/knowledge/workers/templates/social-worker.yaml +0 -70
- package/template/modules/examples/full-manifest.yaml +0 -92
- package/template/modules/examples/minimal.yaml +0 -14
- package/template/modules/modules.yaml +0 -59
- package/template/projects/.gitkeep +0 -0
- package/template/projects/incorporate-workers-into-pure-ralph/prd.json +0 -88
- package/template/projects/pure-ralph-branch-isolation/README.md +0 -114
- package/template/projects/pure-ralph-branch-isolation/prd.json +0 -123
- package/template/projects/purist-ralph-loop/README.md +0 -148
- package/template/projects/purist-ralph-loop/prd.json +0 -135
- package/template/projects/ralph-test/prd.json +0 -50
- package/template/prompts/pure-ralph-base.md +0 -551
- package/template/settings/.gitkeep +0 -0
- package/template/settings/pure-ralph.json +0 -42
- package/template/social-content/drafts/INDEX.md +0 -21
- package/template/social-content/drafts/linkedin/.gitkeep +0 -1
- package/template/social-content/drafts/x/.gitkeep +0 -1
- package/template/social-content/images/.gitkeep +0 -1
- package/template/starter-projects/code-worker/README.md +0 -97
- package/template/starter-projects/code-worker/prd.json +0 -45
- package/template/starter-projects/personal-assistant/README.md +0 -42
- package/template/starter-projects/personal-assistant/prd.json +0 -43
- package/template/starter-projects/social-media/README.md +0 -60
- package/template/starter-projects/social-media/prd.json +0 -43
- package/template/workers/content-brand/README.md +0 -59
- package/template/workers/content-brand/skills/messaging-alignment.md +0 -91
- package/template/workers/content-brand/skills/tone-check.md +0 -76
- package/template/workers/content-brand/skills/voice-analysis.md +0 -68
- package/template/workers/content-brand/worker.yaml +0 -81
- package/template/workers/content-legal/README.md +0 -80
- package/template/workers/content-legal/skills/claim-substantiation.md +0 -150
- package/template/workers/content-legal/skills/compliance-scan.md +0 -123
- package/template/workers/content-legal/skills/disclaimer-check.md +0 -146
- package/template/workers/content-legal/worker.yaml +0 -118
- package/template/workers/content-product/README.md +0 -77
- package/template/workers/content-product/skills/claim-verification.md +0 -96
- package/template/workers/content-product/skills/feature-accuracy.md +0 -117
- package/template/workers/content-product/skills/stats-check.md +0 -128
- package/template/workers/content-product/worker.yaml +0 -97
- package/template/workers/content-sales/README.md +0 -70
- package/template/workers/content-sales/skills/conversion-analysis.md +0 -96
- package/template/workers/content-sales/skills/cta-audit.md +0 -107
- package/template/workers/content-sales/skills/value-prop-check.md +0 -114
- package/template/workers/content-sales/worker.yaml +0 -93
- package/template/workers/content-shared/cli.ts +0 -242
- package/template/workers/content-shared/index.ts +0 -234
- package/template/workers/content-shared/lib/accuracy-analyzer.ts +0 -661
- package/template/workers/content-shared/lib/analyze.ts +0 -370
- package/template/workers/content-shared/lib/brand-analyzer.ts +0 -526
- package/template/workers/content-shared/lib/cms-integration.ts +0 -446
- package/template/workers/content-shared/lib/compliance-analyzer.ts +0 -655
- package/template/workers/content-shared/lib/conversion-analyzer.ts +0 -555
- package/template/workers/content-shared/lib/github-integration.ts +0 -582
- package/template/workers/content-shared/lib/output.ts +0 -373
- package/template/workers/content-shared/lib/parser.ts +0 -771
- package/template/workers/content-shared/lib/priority.ts +0 -439
- package/template/workers/content-shared/lib/recommendations.ts +0 -512
- package/template/workers/content-shared/lib/reporter.ts +0 -749
- package/template/workers/content-shared/lib/restructure.ts +0 -664
- package/template/workers/content-shared/lib/scorer.ts +0 -140
- package/template/workers/content-shared/lib/types.ts +0 -227
- package/template/workers/content-shared/lib/variants.ts +0 -595
- package/template/workers/content-shared/package.json +0 -51
- package/template/workers/content-shared/pnpm-lock.yaml +0 -39
- package/template/workers/content-shared/test/sample-page.json +0 -115
- package/template/workers/content-shared/tsconfig.json +0 -20
- package/template/workers/dev-team/README.md +0 -166
- package/template/workers/dev-team/_template.yaml +0 -70
- package/template/workers/dev-team/architect/package.json +0 -27
- package/template/workers/dev-team/architect/skills/api-design.md +0 -89
- package/template/workers/dev-team/architect/skills/refactor-plan.md +0 -96
- package/template/workers/dev-team/architect/skills/system-design.md +0 -100
- package/template/workers/dev-team/architect/src/index.ts +0 -49
- package/template/workers/dev-team/architect/src/mcp-server.ts +0 -122
- package/template/workers/dev-team/architect/src/skills/api-design.ts +0 -316
- package/template/workers/dev-team/architect/src/skills/refactor-plan.ts +0 -264
- package/template/workers/dev-team/architect/src/skills/system-design.ts +0 -212
- package/template/workers/dev-team/architect/tsconfig.json +0 -19
- package/template/workers/dev-team/architect/worker.yaml +0 -128
- package/template/workers/dev-team/backend-dev/package-lock.json +0 -1252
- package/template/workers/dev-team/backend-dev/package.json +0 -27
- package/template/workers/dev-team/backend-dev/skills/implement-endpoint.md +0 -70
- package/template/workers/dev-team/backend-dev/skills/implement-service.md +0 -62
- package/template/workers/dev-team/backend-dev/src/index.ts +0 -51
- package/template/workers/dev-team/backend-dev/src/mcp-server.ts +0 -109
- package/template/workers/dev-team/backend-dev/src/skills/implement-endpoint.ts +0 -122
- package/template/workers/dev-team/backend-dev/src/skills/implement-service.ts +0 -126
- package/template/workers/dev-team/backend-dev/tsconfig.json +0 -19
- package/template/workers/dev-team/backend-dev/worker.yaml +0 -128
- package/template/workers/dev-team/code-reviewer/package-lock.json +0 -1080
- package/template/workers/dev-team/code-reviewer/package.json +0 -24
- package/template/workers/dev-team/code-reviewer/skills/merge-to-production.md +0 -61
- package/template/workers/dev-team/code-reviewer/skills/merge-to-staging.md +0 -54
- package/template/workers/dev-team/code-reviewer/skills/request-changes.md +0 -63
- package/template/workers/dev-team/code-reviewer/skills/review-pr.md +0 -77
- package/template/workers/dev-team/code-reviewer/src/index.ts +0 -56
- package/template/workers/dev-team/code-reviewer/src/mcp-server.ts +0 -101
- package/template/workers/dev-team/code-reviewer/tsconfig.json +0 -19
- package/template/workers/dev-team/code-reviewer/worker.yaml +0 -90
- package/template/workers/dev-team/database-dev/package.json +0 -22
- package/template/workers/dev-team/database-dev/skills/create-schema.md +0 -48
- package/template/workers/dev-team/database-dev/src/index.ts +0 -50
- package/template/workers/dev-team/database-dev/src/mcp-server.ts +0 -76
- package/template/workers/dev-team/database-dev/tsconfig.json +0 -18
- package/template/workers/dev-team/database-dev/worker.yaml +0 -90
- package/template/workers/dev-team/frontend-dev/package.json +0 -22
- package/template/workers/dev-team/frontend-dev/skills/create-component.md +0 -26
- package/template/workers/dev-team/frontend-dev/src/index.ts +0 -50
- package/template/workers/dev-team/frontend-dev/src/mcp-server.ts +0 -77
- package/template/workers/dev-team/frontend-dev/tsconfig.json +0 -18
- package/template/workers/dev-team/frontend-dev/worker.yaml +0 -132
- package/template/workers/dev-team/infra-dev/package.json +0 -24
- package/template/workers/dev-team/infra-dev/skills/add-monitoring.md +0 -73
- package/template/workers/dev-team/infra-dev/skills/configure-deployment.md +0 -80
- package/template/workers/dev-team/infra-dev/skills/create-dockerfile.md +0 -62
- package/template/workers/dev-team/infra-dev/skills/setup-cicd.md +0 -63
- package/template/workers/dev-team/infra-dev/src/index.ts +0 -55
- package/template/workers/dev-team/infra-dev/src/mcp-server.ts +0 -82
- package/template/workers/dev-team/infra-dev/tsconfig.json +0 -19
- package/template/workers/dev-team/infra-dev/worker.yaml +0 -92
- package/template/workers/dev-team/knowledge-curator/package.json +0 -24
- package/template/workers/dev-team/knowledge-curator/skills/curate-troubleshooting.md +0 -63
- package/template/workers/dev-team/knowledge-curator/skills/process-learnings.md +0 -61
- package/template/workers/dev-team/knowledge-curator/skills/sync-documentation.md +0 -76
- package/template/workers/dev-team/knowledge-curator/skills/update-patterns.md +0 -63
- package/template/workers/dev-team/knowledge-curator/src/index.ts +0 -53
- package/template/workers/dev-team/knowledge-curator/src/mcp-server.ts +0 -92
- package/template/workers/dev-team/knowledge-curator/tsconfig.json +0 -19
- package/template/workers/dev-team/knowledge-curator/worker.yaml +0 -80
- package/template/workers/dev-team/motion-designer/package.json +0 -22
- package/template/workers/dev-team/motion-designer/skills/add-animation.md +0 -25
- package/template/workers/dev-team/motion-designer/skills/generate-image.md +0 -36
- package/template/workers/dev-team/motion-designer/src/index.ts +0 -63
- package/template/workers/dev-team/motion-designer/src/mcp-server.ts +0 -79
- package/template/workers/dev-team/motion-designer/tsconfig.json +0 -18
- package/template/workers/dev-team/motion-designer/worker.yaml +0 -84
- package/template/workers/dev-team/product-planner/queue.json +0 -4
- package/template/workers/dev-team/product-planner/worker.yaml +0 -220
- package/template/workers/dev-team/project-manager/package-lock.json +0 -1252
- package/template/workers/dev-team/project-manager/package.json +0 -27
- package/template/workers/dev-team/project-manager/skills/create-prd.md +0 -66
- package/template/workers/dev-team/project-manager/skills/next-issue.md +0 -51
- package/template/workers/dev-team/project-manager/skills/project-status.md +0 -59
- package/template/workers/dev-team/project-manager/skills/update-learnings.md +0 -65
- package/template/workers/dev-team/project-manager/src/index.ts +0 -54
- package/template/workers/dev-team/project-manager/src/mcp-server.ts +0 -207
- package/template/workers/dev-team/project-manager/src/skills/create-prd.ts +0 -86
- package/template/workers/dev-team/project-manager/src/skills/next-issue.ts +0 -137
- package/template/workers/dev-team/project-manager/src/skills/project-status.ts +0 -131
- package/template/workers/dev-team/project-manager/src/skills/update-learnings.ts +0 -94
- package/template/workers/dev-team/project-manager/tsconfig.json +0 -19
- package/template/workers/dev-team/project-manager/worker.yaml +0 -96
- package/template/workers/dev-team/qa-tester/package.json +0 -24
- package/template/workers/dev-team/qa-tester/skills/create-demo-account.md +0 -36
- package/template/workers/dev-team/qa-tester/skills/run-tests.md +0 -36
- package/template/workers/dev-team/qa-tester/skills/write-test.md +0 -27
- package/template/workers/dev-team/qa-tester/src/index.ts +0 -61
- package/template/workers/dev-team/qa-tester/src/mcp-server.ts +0 -88
- package/template/workers/dev-team/qa-tester/tsconfig.json +0 -18
- package/template/workers/dev-team/qa-tester/worker.yaml +0 -116
- package/template/workers/dev-team/task-executor/package-lock.json +0 -1252
- package/template/workers/dev-team/task-executor/package.json +0 -27
- package/template/workers/dev-team/task-executor/skills/analyze-issue.md +0 -101
- package/template/workers/dev-team/task-executor/skills/execute.md +0 -133
- package/template/workers/dev-team/task-executor/skills/report-learnings.md +0 -106
- package/template/workers/dev-team/task-executor/skills/validate-completion.md +0 -121
- package/template/workers/dev-team/task-executor/src/index.ts +0 -54
- package/template/workers/dev-team/task-executor/src/mcp-server.ts +0 -139
- package/template/workers/dev-team/task-executor/src/skills/analyze-issue.ts +0 -219
- package/template/workers/dev-team/task-executor/src/skills/execute.ts +0 -132
- package/template/workers/dev-team/task-executor/src/skills/report-learnings.ts +0 -119
- package/template/workers/dev-team/task-executor/src/skills/validate-completion.ts +0 -142
- package/template/workers/dev-team/task-executor/tsconfig.json +0 -19
- package/template/workers/dev-team/task-executor/worker.yaml +0 -110
- package/template/workers/registry.yaml +0 -171
- package/template/workers/security-scanner/README.md +0 -73
- package/template/workers/security-scanner/skills/pre-deploy-check.md +0 -205
- package/template/workers/security-scanner/worker.yaml +0 -26
- package/template/workspace/checkpoints/.gitkeep +0 -0
- package/template/workspace/content-ideas/inbox.jsonl +0 -0
- package/template/workspace/drafts/.gitkeep +0 -0
- package/template/workspace/learnings/.gitkeep +0 -3
- package/template/workspace/orchestrator/.gitkeep +0 -0
- package/template/workspace/ralph-test/COMPLETE.md +0 -18
- package/template/workspace/ralph-test/hello.txt +0 -2
- package/template/workspace/reports/.gitkeep +0 -0
- package/template/workspace/scratch/.gitkeep +0 -0
- package/template/workspace/threads/.gitkeep +0 -3
package/dist/deps.d.ts
CHANGED
package/dist/deps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AA4IA,wBAAsB,SAAS,IAAI,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAkDnE"}
|
package/dist/deps.js
CHANGED
|
@@ -1,63 +1,172 @@
|
|
|
1
|
+
import * as os from "os";
|
|
1
2
|
import { execSync } from "child_process";
|
|
2
|
-
import {
|
|
3
|
+
import { createInterface } from "readline";
|
|
4
|
+
import { success, warn, info, step } from "./ui.js";
|
|
5
|
+
function getPlatform() {
|
|
6
|
+
const p = os.platform();
|
|
7
|
+
if (p === "darwin")
|
|
8
|
+
return "macos";
|
|
9
|
+
if (p === "win32")
|
|
10
|
+
return "windows";
|
|
11
|
+
return "linux";
|
|
12
|
+
}
|
|
13
|
+
function hasBrew() {
|
|
14
|
+
try {
|
|
15
|
+
execSync("brew --version", { stdio: "pipe" });
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function hasWinget() {
|
|
23
|
+
try {
|
|
24
|
+
execSync("winget --version", { stdio: "pipe" });
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function hasChoco() {
|
|
32
|
+
try {
|
|
33
|
+
execSync("choco --version", { stdio: "pipe" });
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
3
40
|
const deps = [
|
|
4
|
-
{
|
|
5
|
-
name: "Node.js",
|
|
6
|
-
command: "node --version",
|
|
7
|
-
required: true,
|
|
8
|
-
installHint: "https://nodejs.org",
|
|
9
|
-
},
|
|
10
41
|
{
|
|
11
42
|
name: "Claude Code CLI",
|
|
12
|
-
|
|
43
|
+
check: "claude --version",
|
|
13
44
|
required: true,
|
|
14
|
-
|
|
45
|
+
getInstallOptions: () => [
|
|
46
|
+
{ cmd: "npm install -g @anthropic-ai/claude-code", label: "npm" },
|
|
47
|
+
],
|
|
48
|
+
manualHint: () => "npm install -g @anthropic-ai/claude-code",
|
|
15
49
|
},
|
|
16
50
|
{
|
|
17
51
|
name: "qmd (search)",
|
|
18
|
-
|
|
19
|
-
required: true,
|
|
20
|
-
installHint: "brew install tobi/tap/qmd",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: "gh CLI",
|
|
24
|
-
command: "gh --version",
|
|
52
|
+
check: "qmd --version",
|
|
25
53
|
required: false,
|
|
26
|
-
|
|
54
|
+
getInstallOptions: (platform) => {
|
|
55
|
+
const options = [];
|
|
56
|
+
if (platform === "macos" && hasBrew()) {
|
|
57
|
+
options.push({ cmd: "brew install tobi/tap/qmd", label: "Homebrew" });
|
|
58
|
+
}
|
|
59
|
+
if (platform === "linux" && hasBrew()) {
|
|
60
|
+
options.push({ cmd: "brew install tobi/tap/qmd", label: "Linuxbrew" });
|
|
61
|
+
}
|
|
62
|
+
// qmd can also be installed via go install or binary download
|
|
63
|
+
return options;
|
|
64
|
+
},
|
|
65
|
+
manualHint: () => "See https://github.com/tobi/qmd for install instructions",
|
|
27
66
|
},
|
|
28
67
|
{
|
|
29
|
-
name: "
|
|
30
|
-
|
|
68
|
+
name: "gh CLI",
|
|
69
|
+
check: "gh --version",
|
|
31
70
|
required: false,
|
|
32
|
-
|
|
71
|
+
getInstallOptions: (platform) => {
|
|
72
|
+
const options = [];
|
|
73
|
+
if (platform === "macos" && hasBrew()) {
|
|
74
|
+
options.push({ cmd: "brew install gh", label: "Homebrew" });
|
|
75
|
+
}
|
|
76
|
+
if (platform === "windows") {
|
|
77
|
+
if (hasWinget()) {
|
|
78
|
+
options.push({ cmd: "winget install --id GitHub.cli", label: "winget" });
|
|
79
|
+
}
|
|
80
|
+
if (hasChoco()) {
|
|
81
|
+
options.push({ cmd: "choco install gh", label: "Chocolatey" });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (platform === "linux" && hasBrew()) {
|
|
85
|
+
options.push({ cmd: "brew install gh", label: "Linuxbrew" });
|
|
86
|
+
}
|
|
87
|
+
return options;
|
|
88
|
+
},
|
|
89
|
+
manualHint: () => "See https://cli.github.com for install instructions",
|
|
33
90
|
},
|
|
34
91
|
];
|
|
35
92
|
function checkCommand(command) {
|
|
36
93
|
try {
|
|
37
94
|
const output = execSync(command, { stdio: "pipe", encoding: "utf-8" });
|
|
38
|
-
|
|
39
|
-
return version;
|
|
95
|
+
return output.trim().split("\n")[0];
|
|
40
96
|
}
|
|
41
97
|
catch {
|
|
42
98
|
return null;
|
|
43
99
|
}
|
|
44
100
|
}
|
|
45
|
-
|
|
101
|
+
async function confirm(question, defaultYes = true) {
|
|
102
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
103
|
+
const hint = defaultYes ? "Y/n" : "y/N";
|
|
104
|
+
return new Promise((resolve) => {
|
|
105
|
+
rl.question(` ? ${question} (${hint}) `, (answer) => {
|
|
106
|
+
rl.close();
|
|
107
|
+
if (!answer.trim())
|
|
108
|
+
return resolve(defaultYes);
|
|
109
|
+
resolve(answer.trim().toLowerCase().startsWith("y"));
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function tryInstall(cmd, name) {
|
|
114
|
+
try {
|
|
115
|
+
step(`Installing ${name}...`);
|
|
116
|
+
execSync(cmd, { stdio: "inherit", timeout: 120000 });
|
|
117
|
+
success(`Installed ${name}`);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
warn(`Failed to install ${name}`);
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export async function checkDeps() {
|
|
126
|
+
const platform = getPlatform();
|
|
46
127
|
console.log();
|
|
47
128
|
console.log(" Checking dependencies...");
|
|
48
129
|
let allRequired = true;
|
|
49
130
|
for (const dep of deps) {
|
|
50
|
-
const version = checkCommand(dep.
|
|
131
|
+
const version = checkCommand(dep.check);
|
|
51
132
|
if (version) {
|
|
52
133
|
success(`${dep.name} ${version}`);
|
|
134
|
+
continue;
|
|
53
135
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
136
|
+
const installOptions = dep.getInstallOptions(platform);
|
|
137
|
+
if (installOptions.length > 0) {
|
|
138
|
+
// We have at least one auto-install option
|
|
139
|
+
const option = installOptions[0]; // use the first (preferred) option
|
|
140
|
+
const install = await confirm(`${dep.name} not found. Install via ${option.label}?`);
|
|
141
|
+
if (install) {
|
|
142
|
+
const ok = tryInstall(option.cmd, dep.name);
|
|
143
|
+
if (!ok) {
|
|
144
|
+
info(`Manual install: ${dep.manualHint(platform)}`);
|
|
145
|
+
if (dep.required)
|
|
146
|
+
allRequired = false;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
if (dep.required) {
|
|
151
|
+
warn(`${dep.name} is required`);
|
|
152
|
+
info(`Install later: ${dep.manualHint(platform)}`);
|
|
153
|
+
allRequired = false;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
info(`Skipped ${dep.name} (optional)`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
58
159
|
}
|
|
59
160
|
else {
|
|
60
|
-
|
|
161
|
+
// No auto-install available for this platform
|
|
162
|
+
if (dep.required) {
|
|
163
|
+
warn(`${dep.name} not found`);
|
|
164
|
+
info(`Install: ${dep.manualHint(platform)}`);
|
|
165
|
+
allRequired = false;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
info(`${dep.name} (optional) — ${dep.manualHint(platform)}`);
|
|
169
|
+
}
|
|
61
170
|
}
|
|
62
171
|
}
|
|
63
172
|
return { allRequired };
|
package/dist/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ const program = new Command();
|
|
|
5
5
|
program
|
|
6
6
|
.name("create-hq")
|
|
7
7
|
.description("Create a new HQ — Personal OS for AI Workers")
|
|
8
|
-
.version("5.
|
|
8
|
+
.version("5.2.0")
|
|
9
9
|
.argument("[directory]", "where to create HQ", "hq")
|
|
10
10
|
.option("--skip-deps", "skip dependency checks")
|
|
11
11
|
.option("--skip-cli", "don't install @indigoai-us/hq-cli globally")
|
package/dist/scaffold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAaA,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAyED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAmKf"}
|
package/dist/scaffold.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as path from "path";
|
|
2
2
|
import * as os from "os";
|
|
3
|
-
import fs from "fs-extra";
|
|
3
|
+
import * as fs from "fs-extra";
|
|
4
4
|
import { createInterface } from "readline";
|
|
5
5
|
import { banner, success, warn, step, nextSteps, info } from "./ui.js";
|
|
6
6
|
import { checkDeps } from "./deps.js";
|
|
7
|
+
import { initGit, hasGit } from "./git.js";
|
|
7
8
|
import { fileURLToPath } from "url";
|
|
8
9
|
import { execSync, spawnSync } from "child_process";
|
|
9
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -29,7 +30,6 @@ const HQ_REPO_URL = "https://github.com/indigoai-us/hq.git";
|
|
|
29
30
|
/**
|
|
30
31
|
* Try to fetch the latest HQ template from GitHub.
|
|
31
32
|
* Returns the path to the template/ dir inside a temp clone, or null on failure.
|
|
32
|
-
* The caller is responsible for cleaning up the temp dir after copying.
|
|
33
33
|
*/
|
|
34
34
|
function fetchRemoteTemplate() {
|
|
35
35
|
const tmpDir = path.join(os.tmpdir(), `hq-template-${Date.now()}`);
|
|
@@ -42,12 +42,10 @@ function fetchRemoteTemplate() {
|
|
|
42
42
|
if (fs.existsSync(templatePath) && fs.existsSync(path.join(templatePath, ".claude"))) {
|
|
43
43
|
return { templateDir: templatePath, cleanupDir: tmpDir };
|
|
44
44
|
}
|
|
45
|
-
// Template dir not found in repo — clean up
|
|
46
45
|
fs.removeSync(tmpDir);
|
|
47
46
|
return null;
|
|
48
47
|
}
|
|
49
48
|
catch {
|
|
50
|
-
// Git clone failed (no access, no git, offline) — fall back to bundled
|
|
51
49
|
try {
|
|
52
50
|
fs.removeSync(tmpDir);
|
|
53
51
|
}
|
|
@@ -60,7 +58,6 @@ function fetchRemoteTemplate() {
|
|
|
60
58
|
* falls back to the bundled template in the npm package.
|
|
61
59
|
*/
|
|
62
60
|
function getTemplateDir() {
|
|
63
|
-
// Try fetching latest from GitHub
|
|
64
61
|
const remote = fetchRemoteTemplate();
|
|
65
62
|
if (remote) {
|
|
66
63
|
return { templateDir: remote.templateDir, cleanupDir: remote.cleanupDir, source: "github" };
|
|
@@ -108,7 +105,6 @@ export async function scaffold(directory, options) {
|
|
|
108
105
|
await fs.copy(templateDir, targetDir, {
|
|
109
106
|
filter: (src) => {
|
|
110
107
|
const rel = path.relative(templateDir, src);
|
|
111
|
-
// Skip git internals and node_modules
|
|
112
108
|
if (rel.includes(".git/") || rel.includes("node_modules/"))
|
|
113
109
|
return false;
|
|
114
110
|
return true;
|
|
@@ -130,9 +126,17 @@ export async function scaffold(directory, options) {
|
|
|
130
126
|
.filter((f) => String(f).endsWith("worker.yaml")).length
|
|
131
127
|
: 0;
|
|
132
128
|
success(`Copied template (${commandCount} commands, ${workerCount} workers)`);
|
|
133
|
-
// 3.
|
|
129
|
+
// 3. Git init
|
|
130
|
+
if (hasGit()) {
|
|
131
|
+
initGit(targetDir);
|
|
132
|
+
success("Initialized git repository");
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
warn("git not found — skipping git init");
|
|
136
|
+
}
|
|
137
|
+
// 4. Check dependencies and install missing ones
|
|
134
138
|
if (!options.skipDeps) {
|
|
135
|
-
checkDeps();
|
|
139
|
+
await checkDeps();
|
|
136
140
|
}
|
|
137
141
|
// 5. Install hq-cli
|
|
138
142
|
if (!options.skipCli) {
|
|
@@ -149,12 +153,12 @@ export async function scaffold(directory, options) {
|
|
|
149
153
|
}
|
|
150
154
|
}
|
|
151
155
|
}
|
|
152
|
-
//
|
|
156
|
+
// 6. Cloud setup
|
|
153
157
|
if (!options.skipCloud) {
|
|
154
158
|
console.log();
|
|
155
159
|
const setupCloud = await confirm("Set up HQ Cloud? (syncs your HQ files and enables remote AI sessions)");
|
|
156
160
|
if (setupCloud) {
|
|
157
|
-
//
|
|
161
|
+
// 6a: Authenticate with Clerk
|
|
158
162
|
let authOk = false;
|
|
159
163
|
try {
|
|
160
164
|
step("Authenticating with HQ Cloud...");
|
|
@@ -173,15 +177,13 @@ export async function scaffold(directory, options) {
|
|
|
173
177
|
catch {
|
|
174
178
|
warn("Could not run hq auth login — you can retry later with: hq auth login");
|
|
175
179
|
}
|
|
176
|
-
//
|
|
180
|
+
// 6b: Upload HQ files to cloud
|
|
177
181
|
if (authOk) {
|
|
178
|
-
let uploadOk = false;
|
|
179
182
|
try {
|
|
180
183
|
step("Uploading HQ files to cloud...");
|
|
181
184
|
const uploadResult = spawnSync("hq", ["cloud", "upload", "--hq-root", targetDir, "--on-conflict", "merge"], { stdio: "inherit", shell: true });
|
|
182
185
|
if (uploadResult.status === 0) {
|
|
183
186
|
success("HQ files uploaded to cloud");
|
|
184
|
-
uploadOk = true;
|
|
185
187
|
}
|
|
186
188
|
else {
|
|
187
189
|
warn("Upload did not complete — you can run later with: hq cloud upload");
|
|
@@ -190,20 +192,8 @@ export async function scaffold(directory, options) {
|
|
|
190
192
|
catch {
|
|
191
193
|
warn("Could not upload files — you can run later with: hq cloud upload");
|
|
192
194
|
}
|
|
193
|
-
// Step 5c: Verify sync is working
|
|
194
|
-
if (uploadOk) {
|
|
195
|
-
try {
|
|
196
|
-
const statusResult = spawnSync("hq", ["sync", "status"], { stdio: "inherit", shell: true, cwd: targetDir });
|
|
197
|
-
if (statusResult.status === 0) {
|
|
198
|
-
success("Cloud sync is configured and working");
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
catch {
|
|
202
|
-
// Non-fatal — sync status is informational
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
195
|
}
|
|
206
|
-
//
|
|
196
|
+
// 6c: Set up Claude token for cloud sessions
|
|
207
197
|
if (authOk) {
|
|
208
198
|
console.log();
|
|
209
199
|
try {
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -8,7 +8,7 @@ export function banner() {
|
|
|
8
8
|
console.log(chalk.bold.white(" ██ ██ ██████ "));
|
|
9
9
|
console.log(chalk.dim(" ▀▀ "));
|
|
10
10
|
console.log();
|
|
11
|
-
console.log(chalk.dim(" Personal OS for AI Workers") + chalk.dim(" v5.
|
|
11
|
+
console.log(chalk.dim(" Personal OS for AI Workers") + chalk.dim(" v5.2.0"));
|
|
12
12
|
console.log();
|
|
13
13
|
}
|
|
14
14
|
export function success(msg) {
|
package/package.json
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-hq",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "Create a new HQ — Personal OS for AI Workers",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-hq": "./dist/index.js"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
|
-
"dist"
|
|
10
|
-
"template"
|
|
9
|
+
"dist"
|
|
11
10
|
],
|
|
12
11
|
"scripts": {
|
|
13
12
|
"build": "tsc",
|
|
14
13
|
"typecheck": "tsc --noEmit",
|
|
15
|
-
"clean": "rm -rf dist"
|
|
16
|
-
"prepack": "node -e \"require('fs').cpSync('../../template','./template',{recursive:true})\"",
|
|
17
|
-
"postpack": "node -e \"require('fs').rmSync('./template',{recursive:true,force:true})\""
|
|
14
|
+
"clean": "rm -rf dist"
|
|
18
15
|
},
|
|
19
16
|
"dependencies": {
|
|
20
17
|
"chalk": "^5.3.0",
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
# HQ - Personal OS for AI Workers
|
|
2
|
-
|
|
3
|
-
Personal OS for orchestrating work across companies, workers, and AI.
|
|
4
|
-
|
|
5
|
-
## Key Files
|
|
6
|
-
|
|
7
|
-
- `INDEX.md` - Root directory map, recent threads, workers (start here)
|
|
8
|
-
- `USER-GUIDE.md` - Commands, workers, typical session
|
|
9
|
-
- `agents.md` - Your profile, preferences, companies (load for writing/communication tasks)
|
|
10
|
-
- `workers/registry.yaml` - Worker index
|
|
11
|
-
|
|
12
|
-
## INDEX.md System
|
|
13
|
-
|
|
14
|
-
Hierarchical INDEX.md files provide a navigable map of HQ. Read parent INDEX before diving into subdirectories.
|
|
15
|
-
|
|
16
|
-
**Key indexes:** `projects/INDEX.md`, `workspace/orchestrator/INDEX.md`, `companies/*/knowledge/INDEX.md`, `workers/*/INDEX.md`, `knowledge/INDEX.md`, `workspace/reports/INDEX.md`
|
|
17
|
-
|
|
18
|
-
**Spec:** `knowledge/hq-core/index-md-spec.md`
|
|
19
|
-
**Rebuild all:** `/cleanup --reindex`
|
|
20
|
-
**Auto-updated by:** `/checkpoint`, `/handoff`, `/reanchor`, `/prd`, `/run-project`, `/newworker`, content commands
|
|
21
|
-
|
|
22
|
-
## Structure
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
HQ/
|
|
26
|
-
├── .claude/commands/ # Slash commands (17, visibility: public|private in frontmatter)
|
|
27
|
-
├── agents.md # Your profile
|
|
28
|
-
├── companies/ # Company-scoped resources (optional)
|
|
29
|
-
│ └── {company}/ # settings/, data/, knowledge/
|
|
30
|
-
├── knowledge/ # HQ-level (Ralph, workers, security, projects)
|
|
31
|
-
├── projects/ # Project PRDs
|
|
32
|
-
├── workers/ # Worker definitions
|
|
33
|
-
│ ├── dev-team/ # 12 code workers
|
|
34
|
-
│ └── content-*/ # 5 content workers
|
|
35
|
-
├── social-content/ # Content drafts
|
|
36
|
-
│ └── drafts/ # x/, linkedin/
|
|
37
|
-
└── workspace/
|
|
38
|
-
├── checkpoints/ # Manual saves
|
|
39
|
-
├── threads/ # Auto-saved sessions
|
|
40
|
-
├── orchestrator/ # Project state
|
|
41
|
-
├── learnings/ # Task insights (event log)
|
|
42
|
-
└── content-ideas/ # Idea capture
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Workers
|
|
46
|
-
|
|
47
|
-
Workers are autonomous agents with defined skills. They *do things*.
|
|
48
|
-
|
|
49
|
-
| Type | Purpose | Examples |
|
|
50
|
-
|------|---------|----------|
|
|
51
|
-
| CodeWorker | Implement features, fix bugs | dev-team/* |
|
|
52
|
-
| ContentWorker | Draft content, maintain voice | content-brand, content-sales |
|
|
53
|
-
| SocialWorker | Post to platforms | x-worker |
|
|
54
|
-
| ResearchWorker | Analysis, market research | analyst |
|
|
55
|
-
| OpsWorker | Reports, automation | cfo-worker |
|
|
56
|
-
|
|
57
|
-
**Run a worker:** `/run {worker} {skill}`
|
|
58
|
-
|
|
59
|
-
**Build a worker:** `/newworker`
|
|
60
|
-
|
|
61
|
-
## Commands
|
|
62
|
-
|
|
63
|
-
### Session Management
|
|
64
|
-
| Command | Purpose |
|
|
65
|
-
|---------|---------|
|
|
66
|
-
| `/checkpoint` | Save state + context status |
|
|
67
|
-
| `/handoff` | Prepare for fresh session |
|
|
68
|
-
| `/reanchor` | Pause and realign |
|
|
69
|
-
| `/nexttask` | Find next thing to work on |
|
|
70
|
-
| `/remember` | Capture learnings as rules in relevant files |
|
|
71
|
-
| `/learn` | Auto-capture and classify learnings from task execution |
|
|
72
|
-
|
|
73
|
-
### Projects
|
|
74
|
-
| Command | Purpose |
|
|
75
|
-
|---------|---------|
|
|
76
|
-
| `/prd` | Generate PRD through discovery |
|
|
77
|
-
| `/run-project` | Execute project via Ralph loop |
|
|
78
|
-
| `/execute-task` | Run single task with workers |
|
|
79
|
-
|
|
80
|
-
### Workers
|
|
81
|
-
| Command | Purpose |
|
|
82
|
-
|---------|---------|
|
|
83
|
-
| `/run` | List/execute workers |
|
|
84
|
-
| `/newworker` | Create new worker |
|
|
85
|
-
| `/metrics` | View execution metrics |
|
|
86
|
-
|
|
87
|
-
### System
|
|
88
|
-
| Command | Purpose |
|
|
89
|
-
|---------|---------|
|
|
90
|
-
| `/search` | Semantic + full-text search across HQ (qmd-powered) |
|
|
91
|
-
| `/search-reindex` | Reindex and re-embed HQ for qmd search |
|
|
92
|
-
| `/cleanup` | Audit and clean HQ |
|
|
93
|
-
| `/setup` | Interactive setup wizard |
|
|
94
|
-
| `/exit-plan` | Force exit from plan mode |
|
|
95
|
-
|
|
96
|
-
## Knowledge Repos
|
|
97
|
-
|
|
98
|
-
Knowledge folders can be their own git repos, symlinked into HQ. This enables independent versioning, sharing, and publishing per knowledge base.
|
|
99
|
-
|
|
100
|
-
**Convention:** Repos live in `repos/public/` or `repos/private/`. Symlinks in `knowledge/` and `companies/*/knowledge` point to them. The symlinks are tracked by HQ git; the repo contents are gitignored.
|
|
101
|
-
|
|
102
|
-
**Reading/searching:** Transparent. `qmd`, `Glob`, `Grep`, `Read` all follow symlinks.
|
|
103
|
-
|
|
104
|
-
**Committing knowledge changes:** Changes show in `git status` of the *target repo* (not HQ). To commit:
|
|
105
|
-
1. `cd` to the symlink target (e.g. `repos/public/knowledge-ralph/`)
|
|
106
|
-
2. `git add`, `git commit`, `git push` in that repo
|
|
107
|
-
|
|
108
|
-
**Adding new knowledge:** Create repo in `repos/{public|private}/knowledge-{name}`, symlink into the appropriate knowledge path.
|
|
109
|
-
|
|
110
|
-
## Search (qmd)
|
|
111
|
-
|
|
112
|
-
HQ can be indexed with [qmd](https://github.com/tobi/qmd) for local semantic + full-text search.
|
|
113
|
-
|
|
114
|
-
**When to search:** Before any planning, research, or context-gathering task, search HQ first with `qmd` to find relevant knowledge, workers, skills, and prior work.
|
|
115
|
-
|
|
116
|
-
**Commands (run via Bash tool):**
|
|
117
|
-
- `qmd search "<query>" --json -n 10` — BM25 keyword search (fast, default)
|
|
118
|
-
- `qmd vsearch "<query>" --json -n 10` — semantic/conceptual search
|
|
119
|
-
- `qmd query "<query>" --json -n 10` — hybrid BM25 + vector + re-ranking (best quality, slower)
|
|
120
|
-
|
|
121
|
-
**Slash commands:** `/search <query>`, `/search-reindex`
|
|
122
|
-
|
|
123
|
-
### Search rules (all commands/skills must follow)
|
|
124
|
-
|
|
125
|
-
| Need | Tool | Example |
|
|
126
|
-
|------|------|---------|
|
|
127
|
-
| Find HQ content by topic | `qmd search` or `qmd vsearch` | "Find knowledge about API integration" |
|
|
128
|
-
| Find files by path pattern | `Glob` | `workers/*/worker.yaml`, `projects/*/prd.json` |
|
|
129
|
-
| Search code in `repos/` | `Grep` | Pattern matching in source code |
|
|
130
|
-
| Validate structured files | `grep` in Bash | Checking YAML fields, git branch filtering |
|
|
131
|
-
|
|
132
|
-
**Never use Grep/Glob to search HQ content by topic.** That's what qmd does. Commands and skills that scan HQ for related context must use `qmd vsearch` (semantic) or `qmd search` (keyword), not Grep.
|
|
133
|
-
|
|
134
|
-
## Learned Rules
|
|
135
|
-
|
|
136
|
-
<!-- Max 20. Overflow removed (rule still lives in its source file). -->
|
|
137
|
-
<!-- Auto-managed by /learn. Manual: /remember -->
|
|
138
|
-
|
|
139
|
-
(none yet — rules accumulate as the system runs)
|
|
140
|
-
|
|
141
|
-
## Learning System
|
|
142
|
-
|
|
143
|
-
Learnings are rules injected directly into the files they govern:
|
|
144
|
-
- Worker rules → `worker.yaml` `instructions:` block
|
|
145
|
-
- Command rules → command `.md` `## Rules` section
|
|
146
|
-
- Knowledge rules → relevant knowledge file
|
|
147
|
-
- Global rules → this file `## Learned Rules`
|
|
148
|
-
|
|
149
|
-
- `/learn` captures and classifies learnings automatically after task execution
|
|
150
|
-
- `/remember` delegates to `/learn` — user corrections always promote to Tier 1
|
|
151
|
-
|
|
152
|
-
Event log: `workspace/learnings/*.json` (append-only, for analysis/dedup).
|
|
153
|
-
|
|
154
|
-
## Auto-Learn (Build Activities)
|
|
155
|
-
|
|
156
|
-
When building HQ infrastructure (new workers, knowledge bases, commands, projects), auto-capture structural changes so future sessions know what exists:
|
|
157
|
-
|
|
158
|
-
**Triggers:**
|
|
159
|
-
- `/newworker` completes → `/learn` with scope: global, rule: "Worker {id} exists at {path} for {purpose}"
|
|
160
|
-
- `/prd` completes → `/learn` with scope: global, rule: "Project {name} exists with {N} stories targeting {repo}"
|
|
161
|
-
- New knowledge files created → `/learn` with scope: global, rule: "Knowledge {topic} available at {path}"
|
|
162
|
-
- New command created → `/learn` with scope: global, rule: "Command /{name} available for {purpose}"
|
|
163
|
-
|
|
164
|
-
**Why:** Fresh sessions load CLAUDE.md but don't scan every directory. Learned rules act as an index of what has been built, preventing re-creation of existing resources and enabling discovery.
|
|
165
|
-
|
|
166
|
-
**Also:** After any structural change, run `qmd update 2>/dev/null || true` to keep search current.
|
|
167
|
-
|
|
168
|
-
## Auto-Checkpoint (PostToolsHook)
|
|
169
|
-
|
|
170
|
-
After completing any of these actions, automatically save thread state to `workspace/threads/`:
|
|
171
|
-
|
|
172
|
-
**Triggers:**
|
|
173
|
-
- Worker skill completion (via `/run`)
|
|
174
|
-
- Git commit
|
|
175
|
-
- File generation (reports, social drafts)
|
|
176
|
-
- Significant file edits in project repos
|
|
177
|
-
|
|
178
|
-
**Thread Format:** See `knowledge/hq-core/thread-schema.md`
|
|
179
|
-
|
|
180
|
-
**Why:** Prevents lost work, enables session resumption, provides audit trail.
|
|
181
|
-
|
|
182
|
-
**How:** After a triggering action, capture git state + summary and write to `workspace/threads/T-{timestamp}-{slug}.json`
|
|
183
|
-
|
|
184
|
-
**Knowledge repos:** When edits touch knowledge files (symlinked to `repos/`), commit those changes to the knowledge repo — not HQ git. See "Knowledge Repos" section above for commit instructions.
|
|
185
|
-
|
|
186
|
-
## Auto-Handoff (Context Limit)
|
|
187
|
-
|
|
188
|
-
When context usage reaches 70% (remaining drops to 30%), automatically run `/handoff`.
|
|
189
|
-
|
|
190
|
-
**Rules:**
|
|
191
|
-
- Check context status line — when `remaining_percentage` ≤ 30, trigger handoff
|
|
192
|
-
- Before handoff, finish current atomic task (don't interrupt mid-edit)
|
|
193
|
-
- Notify user: "Context at {X}% remaining. Running /handoff to preserve continuity."
|
|
194
|
-
- Run `/handoff` with summary of remaining work
|
|
195
|
-
- This overrides manual handoff — don't wait for user to request it
|
|
196
|
-
|
|
197
|
-
## Core Principles
|
|
198
|
-
|
|
199
|
-
1. **Infrastructure scales, effort doesn't** - Build reusable systems
|
|
200
|
-
2. **Workers should grow smarter** - Capture learnings in knowledge bases
|
|
201
|
-
3. **Context is precious** - Checkpoint often, don't let work evaporate
|
|
202
|
-
4. **Ship, then iterate** - Working > perfect
|