@polderlabs/bizar 10.7.1 → 10.7.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/.claude/agents/_shared/AGENT_BASELINE.md +266 -0
- package/.claude/agents/_shared/CLAUDE_TOOLS.md +412 -0
- package/.claude/agents/_shared/SKILLS.md +109 -0
- package/.claude/agents/brand-designer.md +55 -0
- package/.claude/agents/exec-assistant.md +34 -0
- package/.claude/agents/help-desk.md +44 -0
- package/.claude/agents/it-lead.md +53 -0
- package/.claude/agents/knowledge-manager.md +49 -0
- package/.claude/agents/office-coordinator.md +39 -0
- package/.claude/agents/office-greeter.md +53 -0
- package/.claude/agents/office-manager.md +287 -0
- package/.claude/agents/principal-engineer.md +58 -0
- package/.claude/agents/qa-reviewer.md +51 -0
- package/.claude/agents/research-analyst.md +53 -0
- package/.claude/agents/senior-engineer.md +55 -0
- package/.claude/agents/support-tech.md +87 -0
- package/.claude/agents/vp-engineering.md +54 -0
- package/.claude/commands/audit.md +48 -0
- package/.claude/commands/bizar.md +22 -0
- package/.claude/commands/cron.md +36 -0
- package/.claude/commands/explain.md +17 -0
- package/.claude/commands/goal.md +99 -0
- package/.claude/commands/init.md +15 -0
- package/.claude/commands/learn.md +46 -0
- package/.claude/commands/plan.md +35 -0
- package/.claude/commands/plow-through.md +50 -0
- package/.claude/commands/pr-review.md +49 -0
- package/.claude/commands/setup-provider.md +96 -0
- package/.claude/commands/spec.md +47 -0
- package/.claude/commands/sprint.md +43 -0
- package/.claude/commands/tailscale-serve.md +100 -0
- package/.claude/commands/team.md +132 -0
- package/.claude/commands/test.md +62 -0
- package/.claude/commands/validate.md +68 -0
- package/.claude/commands/visual-plan.md +24 -0
- package/.claude/hooks/README.md +108 -0
- package/.claude/hooks/__tests__/pretooluse-editwrite.test.mjs +146 -0
- package/.claude/hooks/__tests__/sessionend-recall.test.mjs +256 -0
- package/.claude/hooks/__tests__/sessionstart-prime.test.mjs +325 -0
- package/.claude/hooks/__tests__/thinking-route.test.mjs +319 -0
- package/.claude/hooks/auto-instinct.sh +81 -0
- package/.claude/hooks/learning-extract.mjs +92 -0
- package/.claude/hooks/post-merge-audit.sh +93 -0
- package/.claude/hooks/posttooluse-editwrite.mjs +91 -0
- package/.claude/hooks/pretooluse-bash.mjs +87 -0
- package/.claude/hooks/pretooluse-editwrite.mjs +117 -0
- package/.claude/hooks/sessionend-recall.mjs +384 -0
- package/.claude/hooks/sessionstart-prime.mjs +278 -0
- package/.claude/hooks/thinking-route.mjs +314 -0
- package/.claude/hooks/worker-suggest.mjs +110 -0
- package/.claude/settings.json +167 -0
- package/.claude/skills/9router/SKILL.md +80 -0
- package/.claude/skills/9router-chat/SKILL.md +73 -0
- package/.claude/skills/9router-embeddings/SKILL.md +69 -0
- package/.claude/skills/9router-image/SKILL.md +86 -0
- package/.claude/skills/9router-stt/SKILL.md +79 -0
- package/.claude/skills/9router-tts/SKILL.md +80 -0
- package/.claude/skills/9router-web-fetch/SKILL.md +99 -0
- package/.claude/skills/9router-web-search/SKILL.md +91 -0
- package/.claude/skills/agent-browser/SKILL.md +64 -0
- package/.claude/skills/bizar/README.md +9 -0
- package/.claude/skills/bizar/SKILL.md +447 -0
- package/.claude/skills/cpp-coding-standards/README.md +28 -0
- package/.claude/skills/cpp-coding-standards/SKILL.md +634 -0
- package/.claude/skills/cpp-coding-standards/references/concurrency.md +320 -0
- package/.claude/skills/cpp-coding-standards/references/error-handling.md +229 -0
- package/.claude/skills/cpp-coding-standards/references/memory-safety.md +216 -0
- package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
- package/.claude/skills/cpp-coding-standards/references/review-checklist.md +96 -0
- package/.claude/skills/cpp-testing/README.md +28 -0
- package/.claude/skills/cpp-testing/SKILL.md +304 -0
- package/.claude/skills/cpp-testing/references/coverage.md +370 -0
- package/.claude/skills/cpp-testing/references/framework-compare.md +175 -0
- package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
- package/.claude/skills/cpp-testing/references/mocking.md +364 -0
- package/.claude/skills/cpp-testing/references/tdd-workflow.md +308 -0
- package/.claude/skills/cubesandbox/SKILL.md +148 -0
- package/.claude/skills/de-sloppify/SKILL.md +38 -0
- package/.claude/skills/de-sloppify/cleanup.mjs +253 -0
- package/.claude/skills/de-sloppify/cleanup.test.mjs +189 -0
- package/.claude/skills/embedded-esp-idf/README.md +41 -0
- package/.claude/skills/embedded-esp-idf/SKILL.md +439 -0
- package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
- package/.claude/skills/embedded-esp-idf/references/host-tests.md +164 -0
- package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
- package/.claude/skills/embedded-esp-idf/references/kconfig.md +159 -0
- package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
- package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
- package/.claude/skills/embedded-esp-idf/references/nvs.md +121 -0
- package/.claude/skills/embedded-esp-idf/references/packed-structs.md +192 -0
- package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
- package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
- package/.claude/skills/glyph/SKILL.md +163 -0
- package/.claude/skills/harness-engineering/SKILL.md +142 -0
- package/.claude/skills/lightrag/SKILL.md +81 -0
- package/.claude/skills/memory-protocol/SKILL.md +105 -0
- package/.claude/skills/obsidian/SKILL.md +306 -0
- package/.claude/skills/read-the-damn-docs/SKILL.md +113 -0
- package/.claude/skills/self-improvement/SKILL.md +64 -0
- package/.claude/skills/skillopt/SKILL.md +129 -0
- package/.claude/skills/thinking-archetypes/SKILL.md +90 -0
- package/.claude/skills/thinking-bayesian/SKILL.md +267 -0
- package/.claude/skills/thinking-bounded-rationality/SKILL.md +406 -0
- package/.claude/skills/thinking-circle-of-competence/SKILL.md +216 -0
- package/.claude/skills/thinking-cynefin/SKILL.md +70 -0
- package/.claude/skills/thinking-debiasing/SKILL.md +192 -0
- package/.claude/skills/thinking-dual-process/SKILL.md +282 -0
- package/.claude/skills/thinking-effectuation/SKILL.md +366 -0
- package/.claude/skills/thinking-feedback-loops/SKILL.md +464 -0
- package/.claude/skills/thinking-fermi-estimation/SKILL.md +263 -0
- package/.claude/skills/thinking-first-principles/SKILL.md +167 -0
- package/.claude/skills/thinking-five-whys-plus/SKILL.md +139 -0
- package/.claude/skills/thinking-inversion/SKILL.md +195 -0
- package/.claude/skills/thinking-jobs-to-be-done/SKILL.md +363 -0
- package/.claude/skills/thinking-kepner-tregoe/SKILL.md +154 -0
- package/.claude/skills/thinking-leverage-points/SKILL.md +390 -0
- package/.claude/skills/thinking-lindy-effect/SKILL.md +331 -0
- package/.claude/skills/thinking-map-territory/SKILL.md +111 -0
- package/.claude/skills/thinking-margin-of-safety/SKILL.md +330 -0
- package/.claude/skills/thinking-model-combination/SKILL.md +406 -0
- package/.claude/skills/thinking-model-router/SKILL.md +360 -0
- package/.claude/skills/thinking-model-selection/SKILL.md +341 -0
- package/.claude/skills/thinking-occams-razor/SKILL.md +129 -0
- package/.claude/skills/thinking-ooda/SKILL.md +127 -0
- package/.claude/skills/thinking-opportunity-cost/SKILL.md +360 -0
- package/.claude/skills/thinking-pre-mortem/SKILL.md +170 -0
- package/.claude/skills/thinking-probabilistic/SKILL.md +324 -0
- package/.claude/skills/thinking-red-team/SKILL.md +142 -0
- package/.claude/skills/thinking-regret-minimization/SKILL.md +335 -0
- package/.claude/skills/thinking-reversibility/SKILL.md +326 -0
- package/.claude/skills/thinking-scientific-method/SKILL.md +162 -0
- package/.claude/skills/thinking-second-order/SKILL.md +184 -0
- package/.claude/skills/thinking-socratic/SKILL.md +198 -0
- package/.claude/skills/thinking-steel-manning/SKILL.md +332 -0
- package/.claude/skills/thinking-systems/SKILL.md +238 -0
- package/.claude/skills/thinking-theory-of-constraints/SKILL.md +338 -0
- package/.claude/skills/thinking-thought-experiment/SKILL.md +354 -0
- package/.claude/skills/thinking-triz/SKILL.md +171 -0
- package/.claude/skills/thinking-via-negativa/SKILL.md +358 -0
- package/cli/install/postinstall.mjs +54 -28
- package/cli/install/postinstall.test.mjs +98 -0
- package/package.json +7 -2
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cli/install/postinstall.test.mjs
|
|
3
|
+
*
|
|
4
|
+
* Verifies the postinstall bootstrap resolves source paths via the package
|
|
5
|
+
* root, not via BIZAR_HOME (regression test for the v10.7.0 ENOENT crash:
|
|
6
|
+
* `~/.config/config/agents/mike.md → ~/.claude/agents/mike.md`).
|
|
7
|
+
*/
|
|
8
|
+
import { test } from 'node:test';
|
|
9
|
+
import assert from 'node:assert/strict';
|
|
10
|
+
import { mkdtempSync, mkdirSync, writeFileSync, rmSync, existsSync, readdirSync, copyFileSync, readFileSync } from 'node:fs';
|
|
11
|
+
import { join, dirname, resolve } from 'node:path';
|
|
12
|
+
import { tmpdir } from 'node:os';
|
|
13
|
+
import { fileURLToPath } from 'node:url';
|
|
14
|
+
|
|
15
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
16
|
+
const REPO_ROOT = resolve(__dirname, '..', '..');
|
|
17
|
+
|
|
18
|
+
// Mirror the postinstall's PACKAGE_ROOT computation.
|
|
19
|
+
const PACKAGE_ROOT_FROM_HERE = join(__dirname, '..', '..');
|
|
20
|
+
const SRC_AGENTS_DIR = join(PACKAGE_ROOT_FROM_HERE, '.claude', 'agents');
|
|
21
|
+
const SRC_SETTINGS_FILE = join(PACKAGE_ROOT_FROM_HERE, '.claude', 'settings.json');
|
|
22
|
+
|
|
23
|
+
test('PACKAGE_ROOT resolves to the repo root (not BIZAR_HOME)', () => {
|
|
24
|
+
// The bug: source paths used PATHS.bizarHome + '/../config/agents/' which
|
|
25
|
+
// climbed one level up from BIZAR_HOME — a runtime state dir. The fix
|
|
26
|
+
// resolves via import.meta.url to the actual package root.
|
|
27
|
+
assert.ok(SRC_AGENTS_DIR.endsWith('/.claude/agents'), `got ${SRC_AGENTS_DIR}`);
|
|
28
|
+
assert.ok(SRC_SETTINGS_FILE.endsWith('/.claude/settings.json'), `got ${SRC_SETTINGS_FILE}`);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('.claude/agents/ directory exists in the repo (canonical agent source)', () => {
|
|
32
|
+
assert.ok(existsSync(SRC_AGENTS_DIR), `${SRC_AGENTS_DIR} must exist`);
|
|
33
|
+
const files = readdirSync(SRC_AGENTS_DIR).filter(f => f.endsWith('.md'));
|
|
34
|
+
assert.ok(files.length >= 14, `expected >=14 agents, got ${files.length}`);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('every shipped agent file resolves to a real file under .claude/agents/', () => {
|
|
38
|
+
const files = readdirSync(SRC_AGENTS_DIR).filter(f => f.endsWith('.md'));
|
|
39
|
+
for (const file of files) {
|
|
40
|
+
assert.ok(existsSync(join(SRC_AGENTS_DIR, file)), `${file} must exist on disk`);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test('.claude/settings.json exists in the repo (settings template)', () => {
|
|
45
|
+
assert.ok(existsSync(SRC_SETTINGS_FILE), `${SRC_SETTINGS_FILE} must exist`);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test('copy semantics: existing files in destination are not overwritten', () => {
|
|
49
|
+
// Build a fake source tree + destination tree.
|
|
50
|
+
const work = mkdtempSync(join(tmpdir(), 'bizar-postinstall-'));
|
|
51
|
+
try {
|
|
52
|
+
const srcDir = join(work, 'src');
|
|
53
|
+
const dstDir = join(work, 'dst');
|
|
54
|
+
mkdirSync(srcDir, { recursive: true });
|
|
55
|
+
mkdirSync(dstDir, { recursive: true });
|
|
56
|
+
writeFileSync(join(srcDir, 'a.md'), '# shipped');
|
|
57
|
+
writeFileSync(join(dstDir, 'a.md'), '# user-edited');
|
|
58
|
+
|
|
59
|
+
// Mirror postinstall's loop: skip when dst exists.
|
|
60
|
+
const files = ['a.md'];
|
|
61
|
+
for (const f of files) {
|
|
62
|
+
const dst = join(dstDir, f);
|
|
63
|
+
if (!existsSync(dst)) {
|
|
64
|
+
copyFileSync(join(srcDir, f), dst);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const content = readFileSync(join(dstDir, 'a.md'), 'utf8');
|
|
68
|
+
assert.match(content, /user-edited/, 'existing user file must be preserved');
|
|
69
|
+
} finally {
|
|
70
|
+
rmSync(work, { recursive: true, force: true });
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test('copy semantics: missing files are copied from source', () => {
|
|
75
|
+
const work = mkdtempSync(join(tmpdir(), 'bizar-postinstall-'));
|
|
76
|
+
try {
|
|
77
|
+
const srcDir = join(work, 'src');
|
|
78
|
+
const dstDir = join(work, 'dst');
|
|
79
|
+
mkdirSync(srcDir, { recursive: true });
|
|
80
|
+
mkdirSync(dstDir, { recursive: true });
|
|
81
|
+
writeFileSync(join(srcDir, 'b.md'), '# shipped');
|
|
82
|
+
|
|
83
|
+
const files = ['b.md'];
|
|
84
|
+
for (const f of files) {
|
|
85
|
+
const dst = join(dstDir, f);
|
|
86
|
+
if (!existsSync(dst)) copyFileSync(join(srcDir, f), dst);
|
|
87
|
+
}
|
|
88
|
+
assert.match(readFileSync(join(dstDir, 'b.md'), 'utf8'), /shipped/);
|
|
89
|
+
} finally {
|
|
90
|
+
rmSync(work, { recursive: true, force: true });
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
test('regression: source path does NOT include "config/agents/" (legacy deleted in F-107)', () => {
|
|
95
|
+
// F-107 deleted config/agents/. Postinstall must not reference it.
|
|
96
|
+
assert.ok(!SRC_AGENTS_DIR.includes('/config/agents/'),
|
|
97
|
+
`BUG: SRC_AGENTS_DIR must not contain /config/agents/ (legacy tree), got ${SRC_AGENTS_DIR}`);
|
|
98
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polderlabs/bizar",
|
|
3
|
-
"version": "10.7.
|
|
3
|
+
"version": "10.7.2",
|
|
4
4
|
"description": "90s-office multi-agent system for Claude Code — 14 agents across 4 cost tiers with cost-aware routing, plans, and a configurable agent harness. Ships as a single npm package with the dashboard server, Claude Code MCP server, and typed SDK.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
"templates/",
|
|
15
15
|
"scripts/",
|
|
16
16
|
"plugins/",
|
|
17
|
-
"install.sh"
|
|
17
|
+
"install.sh",
|
|
18
|
+
".claude/agents/",
|
|
19
|
+
".claude/skills/",
|
|
20
|
+
".claude/commands/",
|
|
21
|
+
".claude/hooks/",
|
|
22
|
+
".claude/settings.json"
|
|
18
23
|
],
|
|
19
24
|
"scripts": {
|
|
20
25
|
"typecheck": "tsc --noEmit",
|