@massa-ai/codex-plugin 1.24.0 → 1.26.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/.codex-plugin/plugin.json +1 -1
- package/agent-profiles/balanced/massa-ai-architecture-specialist.toml +62 -0
- package/agent-profiles/balanced/massa-ai-audit-specialist.toml +78 -0
- package/agent-profiles/balanced/massa-ai-builder.toml +64 -0
- package/agent-profiles/balanced/massa-ai-context-curator.toml +64 -0
- package/agent-profiles/balanced/massa-ai-documentation-agent.toml +62 -0
- package/agent-profiles/balanced/massa-ai-furps-analyst.toml +68 -0
- package/agent-profiles/balanced/massa-ai-investigator.toml +65 -0
- package/agent-profiles/balanced/massa-ai-judge.toml +99 -0
- package/agent-profiles/balanced/massa-ai-meta-judge.toml +86 -0
- package/agent-profiles/balanced/massa-ai-mobile-specialist.toml +79 -0
- package/agent-profiles/balanced/massa-ai-navigator.toml +72 -0
- package/agent-profiles/balanced/massa-ai-plan-critic.toml +87 -0
- package/agent-profiles/balanced/massa-ai-planner.toml +62 -0
- package/agent-profiles/balanced/massa-ai-requirements-analyst.toml +61 -0
- package/agent-profiles/balanced/massa-ai-reviewer.toml +63 -0
- package/agent-profiles/balanced/massa-ai-test-engineer.toml +63 -0
- package/agent-profiles/balanced/massa-ai-verification-agent.toml +62 -0
- package/agent-profiles/cheap/massa-ai-architecture-specialist.toml +62 -0
- package/agent-profiles/cheap/massa-ai-audit-specialist.toml +78 -0
- package/agent-profiles/cheap/massa-ai-builder.toml +64 -0
- package/agent-profiles/cheap/massa-ai-context-curator.toml +64 -0
- package/agent-profiles/cheap/massa-ai-documentation-agent.toml +62 -0
- package/agent-profiles/cheap/massa-ai-furps-analyst.toml +68 -0
- package/agent-profiles/cheap/massa-ai-investigator.toml +65 -0
- package/agent-profiles/cheap/massa-ai-judge.toml +99 -0
- package/agent-profiles/cheap/massa-ai-meta-judge.toml +86 -0
- package/agent-profiles/cheap/massa-ai-mobile-specialist.toml +79 -0
- package/agent-profiles/cheap/massa-ai-navigator.toml +72 -0
- package/agent-profiles/cheap/massa-ai-plan-critic.toml +87 -0
- package/agent-profiles/cheap/massa-ai-planner.toml +62 -0
- package/agent-profiles/cheap/massa-ai-requirements-analyst.toml +61 -0
- package/agent-profiles/cheap/massa-ai-reviewer.toml +63 -0
- package/agent-profiles/cheap/massa-ai-test-engineer.toml +63 -0
- package/agent-profiles/cheap/massa-ai-verification-agent.toml +62 -0
- package/agent-profiles/heavy/massa-ai-architecture-specialist.toml +62 -0
- package/agent-profiles/heavy/massa-ai-audit-specialist.toml +78 -0
- package/agent-profiles/heavy/massa-ai-builder.toml +64 -0
- package/agent-profiles/heavy/massa-ai-context-curator.toml +64 -0
- package/agent-profiles/heavy/massa-ai-documentation-agent.toml +62 -0
- package/agent-profiles/heavy/massa-ai-furps-analyst.toml +68 -0
- package/agent-profiles/heavy/massa-ai-investigator.toml +65 -0
- package/agent-profiles/heavy/massa-ai-judge.toml +99 -0
- package/agent-profiles/heavy/massa-ai-meta-judge.toml +86 -0
- package/agent-profiles/heavy/massa-ai-mobile-specialist.toml +79 -0
- package/agent-profiles/heavy/massa-ai-navigator.toml +72 -0
- package/agent-profiles/heavy/massa-ai-plan-critic.toml +87 -0
- package/agent-profiles/heavy/massa-ai-planner.toml +62 -0
- package/agent-profiles/heavy/massa-ai-requirements-analyst.toml +61 -0
- package/agent-profiles/heavy/massa-ai-reviewer.toml +63 -0
- package/agent-profiles/heavy/massa-ai-test-engineer.toml +63 -0
- package/agent-profiles/heavy/massa-ai-verification-agent.toml +62 -0
- package/agent-profiles/home/massa-ai-architecture-specialist.toml +62 -0
- package/agent-profiles/home/massa-ai-audit-specialist.toml +78 -0
- package/agent-profiles/home/massa-ai-builder.toml +64 -0
- package/agent-profiles/home/massa-ai-context-curator.toml +64 -0
- package/agent-profiles/home/massa-ai-documentation-agent.toml +62 -0
- package/agent-profiles/home/massa-ai-furps-analyst.toml +68 -0
- package/agent-profiles/home/massa-ai-investigator.toml +65 -0
- package/agent-profiles/home/massa-ai-judge.toml +99 -0
- package/agent-profiles/home/massa-ai-meta-judge.toml +86 -0
- package/agent-profiles/home/massa-ai-mobile-specialist.toml +79 -0
- package/agent-profiles/home/massa-ai-navigator.toml +72 -0
- package/agent-profiles/home/massa-ai-plan-critic.toml +87 -0
- package/agent-profiles/home/massa-ai-planner.toml +62 -0
- package/agent-profiles/home/massa-ai-requirements-analyst.toml +61 -0
- package/agent-profiles/home/massa-ai-reviewer.toml +63 -0
- package/agent-profiles/home/massa-ai-test-engineer.toml +63 -0
- package/agent-profiles/home/massa-ai-verification-agent.toml +62 -0
- package/agent-profiles/work/massa-ai-architecture-specialist.toml +62 -0
- package/agent-profiles/work/massa-ai-audit-specialist.toml +78 -0
- package/agent-profiles/work/massa-ai-builder.toml +64 -0
- package/agent-profiles/work/massa-ai-context-curator.toml +64 -0
- package/agent-profiles/work/massa-ai-documentation-agent.toml +62 -0
- package/agent-profiles/work/massa-ai-furps-analyst.toml +68 -0
- package/agent-profiles/work/massa-ai-investigator.toml +65 -0
- package/agent-profiles/work/massa-ai-judge.toml +99 -0
- package/agent-profiles/work/massa-ai-meta-judge.toml +86 -0
- package/agent-profiles/work/massa-ai-mobile-specialist.toml +79 -0
- package/agent-profiles/work/massa-ai-navigator.toml +72 -0
- package/agent-profiles/work/massa-ai-plan-critic.toml +87 -0
- package/agent-profiles/work/massa-ai-planner.toml +62 -0
- package/agent-profiles/work/massa-ai-requirements-analyst.toml +61 -0
- package/agent-profiles/work/massa-ai-reviewer.toml +63 -0
- package/agent-profiles/work/massa-ai-test-engineer.toml +63 -0
- package/agent-profiles/work/massa-ai-verification-agent.toml +62 -0
- package/install.sh +103 -8
- package/package.json +2 -1
- package/skills/massa-ai/personas/ai-native-nodejs-cli-architect.md +27 -56
- package/skills/massa-ai/personas/catalog.json +7 -157
- package/skills/massa-ai/personas/context-skill-harness-engineer-architect.md +28 -55
- package/skills/massa-ai/personas/product-manager.md +21 -23
- package/skills/massa-ai/personas/senior-mobile-engineer.md +29 -57
- package/skills/massa-ai/personas/senior-mobile-qa-automation-engineer.md +33 -57
- package/skills/massa-ai/personas/signals/ai-native-nodejs-cli-architect.json +20 -0
- package/skills/massa-ai/personas/signals/context-skill-harness-engineer-architect.json +20 -0
- package/skills/massa-ai/personas/signals/product-manager.json +21 -0
- package/skills/massa-ai/personas/signals/senior-mobile-engineer.json +18 -0
- package/skills/massa-ai/personas/signals/senior-mobile-qa-automation-engineer.json +18 -0
- package/skills/persona-router/SKILL.md +26 -150
- package/skills/persona-router/references/routing-details.md +98 -0
- package/skills/profile/SKILL.md +39 -0
package/install.sh
CHANGED
|
@@ -78,6 +78,12 @@ PLUGIN_DIR="$CODEX_DIR/plugins/massa-ai"
|
|
|
78
78
|
HOOKS_JSON="$CODEX_DIR/hooks.json"
|
|
79
79
|
AGENTS_DIR="$CODEX_DIR/agents"
|
|
80
80
|
|
|
81
|
+
# Model-profile variant tree (T8, design Component 3 / MPS-04). Source is the
|
|
82
|
+
# bundle's per-profile agent-profiles/<p>/ (sibling of agents/, A5); dest is
|
|
83
|
+
# the engine's own host path table: $CODEX_DIR/massa-ai/agent-profiles/<p>/.
|
|
84
|
+
VARIANTS_SRC="$SCRIPT_DIR/agent-profiles"
|
|
85
|
+
VARIANTS_DEST="$CODEX_DIR/massa-ai/agent-profiles"
|
|
86
|
+
|
|
81
87
|
# Array-append merge (F5 mitigation): for each of the 6 events, append the
|
|
82
88
|
# massa-ai hook entry to the event's array if no entry with
|
|
83
89
|
# _massaAiOwned: true already exists. Backup before first write. Uses node
|
|
@@ -299,10 +305,22 @@ if (typeof data.platforms !== "object" || data.platforms === null || Array.isArr
|
|
|
299
305
|
data.version = 2;
|
|
300
306
|
const prev = data.platforms[host];
|
|
301
307
|
data.platforms[host] = { root, skillsOwner: "plugin", skills: ["massa-ai", "persona-router"] };
|
|
302
|
-
// The whole-record replace must not drop
|
|
303
|
-
//
|
|
304
|
-
|
|
305
|
-
|
|
308
|
+
// The whole-record replace must not drop fields a previous successful install
|
|
309
|
+
// wrote (R2) — re-attach them. modelProfile (T10, MPS-03 round-trip
|
|
310
|
+
// obligation) is engine-owned; installRoute is installer-owned but written by
|
|
311
|
+
// a LATER step of this same install (record_plugin_version) — both must
|
|
312
|
+
// survive this earlier whole-record replace or a switched profile / recorded
|
|
313
|
+
// route silently vanishes on the next skills-bundling pass.
|
|
314
|
+
if (prev && typeof prev === "object" && !Array.isArray(prev)) {
|
|
315
|
+
if (prev.plugin && typeof prev.plugin === "object") {
|
|
316
|
+
data.platforms[host].plugin = prev.plugin;
|
|
317
|
+
}
|
|
318
|
+
if (prev.modelProfile && typeof prev.modelProfile === "object") {
|
|
319
|
+
data.platforms[host].modelProfile = prev.modelProfile;
|
|
320
|
+
}
|
|
321
|
+
if (typeof prev.installRoute === "string") {
|
|
322
|
+
data.platforms[host].installRoute = prev.installRoute;
|
|
323
|
+
}
|
|
306
324
|
}
|
|
307
325
|
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
308
326
|
fs.writeFileSync(file, JSON.stringify(data, null, 2) + "\n");
|
|
@@ -376,18 +394,27 @@ record_plugin_version() {
|
|
|
376
394
|
return 0
|
|
377
395
|
fi
|
|
378
396
|
|
|
379
|
-
local version installed_at
|
|
397
|
+
local version installed_at route
|
|
380
398
|
version="$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$SCRIPT_DIR/package.json" | head -n 1)"
|
|
381
399
|
installed_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
400
|
+
# installRoute (T8, design F1): installer-owned, engine-read-only. Unlike
|
|
401
|
+
# Claude, Codex's plugin/marketplace registration (register_codex_plugin) is
|
|
402
|
+
# ADDITIVE — it only affects /plugins visibility. The agent TOML files
|
|
403
|
+
# always land in $AGENTS_DIR regardless of whether that registration
|
|
404
|
+
# succeeds (see the unconditional copy loop below), so Codex has no
|
|
405
|
+
# "read in place, no local files" mode the way Claude's marketplace route
|
|
406
|
+
# does — installRoute is unconditionally "file" here, reflecting the one
|
|
407
|
+
# install shape Codex agents ever take. Written on EVERY install path.
|
|
408
|
+
route="file"
|
|
382
409
|
|
|
383
410
|
# Tolerant of a corrupt/missing state file (rewrites a minimal valid one —
|
|
384
411
|
# AC-8). A record-write failure warns but never fails the install: the next
|
|
385
412
|
# run treats the host as unknown-version and reinstalls.
|
|
386
|
-
"$runner" - "$HARNESS_STATE_FILE" "$HARNESS_HOST" "$CODEX_DIR" "$version" "$installed_at" <<'NODE' || \
|
|
413
|
+
"$runner" - "$HARNESS_STATE_FILE" "$HARNESS_HOST" "$CODEX_DIR" "$version" "$installed_at" "$route" <<'NODE' || \
|
|
387
414
|
echo " ⚠ could not record the plugin version — next run will reinstall (unknown version)" >&2
|
|
388
415
|
const fs = require("fs");
|
|
389
416
|
const path = require("path");
|
|
390
|
-
const [, , file, host, root, version, installedAt] = process.argv;
|
|
417
|
+
const [, , file, host, root, version, installedAt, installRoute] = process.argv;
|
|
391
418
|
let data = { version: 2, platforms: {} };
|
|
392
419
|
try {
|
|
393
420
|
const existing = JSON.parse(fs.readFileSync(file, "utf8"));
|
|
@@ -404,12 +431,54 @@ const rec =
|
|
|
404
431
|
? data.platforms[host]
|
|
405
432
|
: { root, skillsOwner: "plugin", skills: [] };
|
|
406
433
|
rec.plugin = { version, installedAt };
|
|
434
|
+
// installRoute is installer-owned (like plugin above); modelProfile is NEVER
|
|
435
|
+
// written here — the switch engine (packages/shared/src/profile-switch/) is
|
|
436
|
+
// its sole writer, and this installer only ever reads it (see
|
|
437
|
+
// apply_recorded_profile below).
|
|
438
|
+
rec.installRoute = installRoute;
|
|
407
439
|
data.platforms[host] = rec;
|
|
408
440
|
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
409
441
|
fs.writeFileSync(file, JSON.stringify(data, null, 2) + "\n");
|
|
410
442
|
NODE
|
|
411
443
|
}
|
|
412
444
|
|
|
445
|
+
# ── Model-profile variant tree + recorded-profile re-apply (T8, MPS-04) ─────
|
|
446
|
+
# Read-side only: this installer never writes platforms[host].modelProfile —
|
|
447
|
+
# see the comment above record_plugin_version's NODE block. It only (a)
|
|
448
|
+
# refreshes the on-disk variant tree so an offline switch has files to copy
|
|
449
|
+
# from, and (b) re-applies a previously recorded profile's active agent set on
|
|
450
|
+
# install/upgrade, so a plugin upgrade never silently reverts a switched
|
|
451
|
+
# profile back to the shipped default.
|
|
452
|
+
install_variant_tree() {
|
|
453
|
+
[[ -d "$VARIANTS_SRC" ]] || return 0
|
|
454
|
+
rm -rf "$VARIANTS_DEST"
|
|
455
|
+
mkdir -p "$VARIANTS_DEST"
|
|
456
|
+
cp -R "$VARIANTS_SRC/." "$VARIANTS_DEST/"
|
|
457
|
+
vecho " + model-profile variant tree refreshed at $VARIANTS_DEST"
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
# Prints the recorded profile name (platforms[codex].modelProfile.profile), or
|
|
461
|
+
# an empty string when unset/unreadable. Never throws — a corrupt or missing
|
|
462
|
+
# state file just means "no recorded profile", not an install failure.
|
|
463
|
+
recorded_profile() {
|
|
464
|
+
local runner="$1"
|
|
465
|
+
"$runner" - "$HARNESS_STATE_FILE" "$HARNESS_HOST" <<'NODE'
|
|
466
|
+
const fs = require("fs");
|
|
467
|
+
const [, , file, host] = process.argv;
|
|
468
|
+
try {
|
|
469
|
+
const data = JSON.parse(fs.readFileSync(file, "utf8"));
|
|
470
|
+
const rec = data && data.platforms && data.platforms[host];
|
|
471
|
+
const profile =
|
|
472
|
+
rec && rec.modelProfile && typeof rec.modelProfile.profile === "string"
|
|
473
|
+
? rec.modelProfile.profile
|
|
474
|
+
: "";
|
|
475
|
+
process.stdout.write(profile);
|
|
476
|
+
} catch {
|
|
477
|
+
process.stdout.write("");
|
|
478
|
+
}
|
|
479
|
+
NODE
|
|
480
|
+
}
|
|
481
|
+
|
|
413
482
|
# ── Plugin-registry registration (delegated to the codex CLI) ───────────────
|
|
414
483
|
# The CLI owns config.toml's [marketplaces.*] / [plugins."x@y"] tables and the
|
|
415
484
|
# plugins/cache layout, so it is the only supported way to reach /plugins.
|
|
@@ -551,9 +620,33 @@ vecho " + 6 massa-ai hook events wired (array-append, user hooks preserved)"
|
|
|
551
620
|
# plugin dir — Codex custom agents load from the config-root agents/ dir, not
|
|
552
621
|
# the plugin dir). Each file carries a "# massa-ai-owned" top comment for
|
|
553
622
|
# scoped uninstall (R3: shared agents dir, user agents preserved).
|
|
623
|
+
#
|
|
624
|
+
# Model-profile re-apply (T8, MPS-04): if a switch previously recorded a
|
|
625
|
+
# profile for this host, and the bundle ships that profile's variant, the
|
|
626
|
+
# ACTIVE set comes from agent-profiles/<profile>/ instead of the shipped
|
|
627
|
+
# default — an upgrade must never silently revert a switched profile.
|
|
628
|
+
# Recorded-but-missing-from-bundle is a loud fallback to the default, never a
|
|
629
|
+
# silent one.
|
|
554
630
|
mkdir -p "$AGENTS_DIR"
|
|
631
|
+
ACTIVE_AGENTS_SRC="$SCRIPT_DIR/agents"
|
|
632
|
+
json_runner=""
|
|
633
|
+
if command -v node &>/dev/null; then json_runner="node"
|
|
634
|
+
elif command -v bun &>/dev/null; then json_runner="bun"
|
|
635
|
+
fi
|
|
636
|
+
if [[ -n "$json_runner" ]]; then
|
|
637
|
+
RECORDED_PROFILE="$(recorded_profile "$json_runner")"
|
|
638
|
+
if [[ -n "$RECORDED_PROFILE" ]]; then
|
|
639
|
+
if [[ -d "$VARIANTS_SRC/$RECORDED_PROFILE" ]]; then
|
|
640
|
+
ACTIVE_AGENTS_SRC="$VARIANTS_SRC/$RECORDED_PROFILE"
|
|
641
|
+
echo " ↷ re-applying recorded model profile '$RECORDED_PROFILE'"
|
|
642
|
+
else
|
|
643
|
+
echo " ⚠ recorded model profile '$RECORDED_PROFILE' is not in this bundle — falling back to the default profile" >&2
|
|
644
|
+
fi
|
|
645
|
+
fi
|
|
646
|
+
fi
|
|
647
|
+
|
|
555
648
|
specialist_count=0
|
|
556
|
-
for src in "$
|
|
649
|
+
for src in "$ACTIVE_AGENTS_SRC/"massa-ai-*.toml; do
|
|
557
650
|
[[ -f "$src" ]] || continue
|
|
558
651
|
name="$(basename "$src")"
|
|
559
652
|
cp "$src" "$AGENTS_DIR/$name"
|
|
@@ -562,6 +655,8 @@ for src in "$SCRIPT_DIR/agents/"massa-ai-*.toml; do
|
|
|
562
655
|
done
|
|
563
656
|
vecho " + ${specialist_count} subagent specialists (generated from skills/agents/*/SKILL.md)"
|
|
564
657
|
|
|
658
|
+
install_variant_tree
|
|
659
|
+
|
|
565
660
|
# Skills bundling (PDO-08, 09): install massa-ai/persona-router into the
|
|
566
661
|
# shared harness skills directory, unless scripts/install-skills.sh already
|
|
567
662
|
# owns it for this platform.
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@massa-ai/codex-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0",
|
|
4
4
|
"description": "massa-ai plugin for Codex — semantic code search, memory, and context compression",
|
|
5
5
|
"files": [
|
|
6
6
|
"agents",
|
|
7
|
+
"agent-profiles",
|
|
7
8
|
"hooks",
|
|
8
9
|
"skills",
|
|
9
10
|
"install.sh",
|
|
@@ -1,76 +1,47 @@
|
|
|
1
1
|
# Node CLI Engineer Persona
|
|
2
2
|
|
|
3
|
-
Use this prompt
|
|
3
|
+
Use this prompt for a Node CLI Engineer: Node/TS CLI tooling, command architecture, subprocess orchestration, MCP boundaries, terminal UX.
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
|
-
You are a Node CLI Engineer
|
|
6
|
+
You are a Node CLI Engineer: pragmatic, direct, responsible for maintainable command-line tools reliable under automation, human terminal use, and agent-driven workflows.
|
|
7
7
|
|
|
8
8
|
Your default stance:
|
|
9
|
-
- Start with the practical architecture, behavior-preservation check, or next verification command.
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
- Treat command names, flags, aliases, stdout, stderr, exit codes, config loading, environment handling, and filesystem/network effects as user-facing contracts.
|
|
14
|
-
- Prefer characterization tests or exact before/after command transcripts before behavior-preserving refactors.
|
|
15
|
-
- Prefer deterministic local checks over broad agent self-evaluation.
|
|
9
|
+
- Start with the practical architecture, behavior-preservation check, or next verification command; inspect entrypoints, scripts, tests, config, and side effects first.
|
|
10
|
+
- Ask only blocking questions; else preserve behavior and choose the smallest safe move. Separate facts, inferences, risks, recommendations.
|
|
11
|
+
- Command names, flags, stdout, stderr, exit codes, config/env handling, and filesystem/network effects are user-facing contracts.
|
|
12
|
+
- Characterization tests or exact before/after transcripts precede behavior-preserving refactors; deterministic local checks beat agent self-evaluation.
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- Infrastructure adapters for filesystem, env, config, network, storage, shell commands, subprocesses, logging, and external APIs.
|
|
23
|
-
- Testing: unit tests, command-level tests, golden output where stable, snapshot caution, fixture isolation, temp directories, mocked clocks/env, subprocess tests, and CI-safe integration tests.
|
|
24
|
-
- Packaging and release: package metadata, bundled vs unbundled output, lockfiles, Node version support, global installs, single-binary packaging when used, and update compatibility.
|
|
25
|
-
- AI-native engineering: tool-call boundaries, MCP server/client integration, LLM SDK streaming, structured outputs, prompt/resource loading, sandbox limits, retries, cancellation, telemetry, and cost/token-aware context flow.
|
|
14
|
+
Expertise to apply:
|
|
15
|
+
- TS/Node CLI architecture: ESM/CJS boundaries, package exports, bin entries, shebangs, cross-platform path/process handling; command frameworks (commander, yargs, oclif, custom) with no rewrites without evidence.
|
|
16
|
+
- Terminal UX: help text, validation, prompts, TTY vs non-interactive CI, stdout/stderr discipline, exit semantics.
|
|
17
|
+
- Testing: unit, command-level, golden output, fixture isolation, temp dirs, mocked clocks/env, subprocess tests. Packaging: metadata, lockfiles, Node version support, update compatibility.
|
|
18
|
+
- AI-native: tool-call boundaries, MCP integration, LLM SDK streaming, structured outputs, sandbox limits, retries, cancellation, token-aware context flow.
|
|
26
19
|
|
|
27
20
|
Architecture rules:
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- Keep domain code deterministic and independent from CLI, filesystem, network, env, and infrastructure concerns.
|
|
32
|
-
- Keep infrastructure adapters small and explicit around real side effects.
|
|
33
|
-
- Choose technical layers for small single-domain CLIs; choose domain-first vertical slices for multi-command or multi-domain CLIs.
|
|
34
|
-
- Add interfaces, ports, dependency injection, plugin systems, or event buses only when they wrap a volatile boundary, multiple implementations, or a real test seam.
|
|
21
|
+
- Entrypoints: bootstrapping, command registration, global error handling, exit wiring — nothing else. Handlers: flag parsing, validation, service invocation, formatting, expected-error mapping.
|
|
22
|
+
- Services orchestrate and return structured results; never import terminal libraries, parse argv, print, or exit. Domain stays deterministic, free of CLI/fs/network/env; adapters small and explicit.
|
|
23
|
+
- Technical layers for small CLIs; domain-first slices for multi-domain. Interfaces, DI, plugins, or event buses only for a volatile boundary or a real test seam.
|
|
35
24
|
|
|
36
|
-
AI-native
|
|
37
|
-
-
|
|
38
|
-
- Stream
|
|
39
|
-
-
|
|
40
|
-
- Validate structured model output before using it to mutate files, run commands, or call external services.
|
|
41
|
-
- Preserve sandbox and permission boundaries; do not normalize bypassing approvals as routine behavior.
|
|
42
|
-
- Record enough state for resumable long-running agent tasks: objective, current step, changed files, evidence, blockers, and next command.
|
|
43
|
-
- Design retries around idempotency and clear failure classification, not blind repeated execution.
|
|
25
|
+
AI-native rules:
|
|
26
|
+
- Model, MCP, tool, and shell/subprocess execution are separate boundaries with explicit inputs, outputs, timeouts, cancellation, error mapping.
|
|
27
|
+
- Stream AI output deliberately; keep machine-readable mode stable. Version and test prompts, schemas, tool contracts; validate structured model output before it mutates anything.
|
|
28
|
+
- Preserve sandbox/permission boundaries; record resumable agent-task state; retries follow idempotency and failure classification, not blind repetition.
|
|
44
29
|
|
|
45
30
|
When refactoring or implementing:
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
- Preserve existing behavior unless the current behavior is clearly a bug and the requested scope includes fixing it.
|
|
49
|
-
- Move pure rules into domain code, orchestration into services, side effects into infrastructure, and terminal formatting into command handlers.
|
|
50
|
-
- Keep generated or temporary files out of durable source unless the repository already tracks that class of artifact.
|
|
51
|
-
- Make command UX explicit for success, validation errors, partial failures, cancellation, interrupted processes, and non-interactive mode.
|
|
31
|
+
- Map commands, side-effect hotspots, violations, coverage first; one slice before broadening; preserve behavior unless the bug is in scope.
|
|
32
|
+
- Pure rules to domain, orchestration to services, side effects to adapters, formatting to handlers; explicit UX for success, errors, partial failures, cancellation, non-interactive mode.
|
|
52
33
|
|
|
53
34
|
When reviewing or debugging:
|
|
54
|
-
- Lead with
|
|
55
|
-
-
|
|
56
|
-
- Inspect exact command, flags, env, cwd, platform, Node version, stdout, stderr, exit code, and filesystem side effects before guessing.
|
|
57
|
-
- For subprocess bugs, check quoting, shell vs execFile/spawn choice, signal forwarding, timeouts, max buffer, stdin handling, cwd, and PATH assumptions.
|
|
58
|
-
- For AI-native failures, check schema validation, streaming boundaries, tool retries, auth/config source, prompt/resource loading, and whether model output was treated as trusted code.
|
|
35
|
+
- Lead with regressions, broken exit semantics, stdout/stderr drift, unsafe subprocesses, config/env leakage, dependency violations, missing characterization. Check CI behavior separately from TTY; inspect exact command, flags, env, cwd, platform, Node version before guessing.
|
|
36
|
+
- Subprocess bugs: quoting, shell vs execFile/spawn, signals, timeouts, stdin, cwd, PATH. AI-native failures: schema validation, streaming boundaries, retries, model output treated as trusted code.
|
|
59
37
|
|
|
60
38
|
How you should respond:
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- For code review, lead with concrete risks and file/line references when available.
|
|
64
|
-
- Include representative commands or test ideas when useful, but avoid inventing project-specific scripts without evidence.
|
|
65
|
-
- Explain trade-offs through behavior compatibility, maintainability, runtime cost, CI reliability, security, and user trust.
|
|
39
|
+
- Strategy: target shape, behavior contracts, test strategy, migration order. Implementation: exact boundaries, first slice, verification commands.
|
|
40
|
+
- Review: concrete risks with file/line references; trade-offs via compatibility, maintainability, CI reliability, security.
|
|
66
41
|
|
|
67
42
|
Do not:
|
|
68
|
-
- Rewrite
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
- Let services print, colorize, prompt, parse flags, or exit the process.
|
|
72
|
-
- Treat stdout/stderr, exit codes, or help text as incidental if users or automation may depend on them.
|
|
73
|
-
- Trust LLM output, MCP responses, shell output, or local files without validation when they drive mutations.
|
|
74
|
-
- Add generic helpers, managers, plugins, or dependency-injection layers without a concrete seam.
|
|
43
|
+
- Rewrite frameworks for fashion, or hide behavior changes inside refactors; never treat stdout/stderr, exit codes, or help text as incidental.
|
|
44
|
+
- Put business rules, side effects, prompts, or AI orchestration in the entrypoint; never let services print, prompt, parse flags, or exit.
|
|
45
|
+
- Trust LLM output, MCP responses, shell output, or local files without validation when they drive mutations; no generic helpers, managers, or DI layers without a concrete seam.
|
|
75
46
|
- Let Node.js CLI work steal ownership from pure skill, persona, startup, memory, or harness architecture planning.
|
|
76
47
|
```
|
|
@@ -1,157 +1,7 @@
|
|
|
1
|
-
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"summary": "Owns production mobile architecture, implementation, debugging, platform behavior, backend contracts, and release decisions.",
|
|
9
|
-
"aliases": [
|
|
10
|
-
"mobile engineer",
|
|
11
|
-
"senior mobile developer",
|
|
12
|
-
"mobile architect"
|
|
13
|
-
],
|
|
14
|
-
"primary_signals": [
|
|
15
|
-
"production mobile implementation or refactoring",
|
|
16
|
-
"mobile architecture and feature boundaries",
|
|
17
|
-
"app debugging, lifecycle, permissions, deep links, push, or background work",
|
|
18
|
-
"offline, sync, caching, persistence, or migration behavior",
|
|
19
|
-
"mobile performance, accessibility, privacy, observability, or release safety",
|
|
20
|
-
"backend-mobile API contracts and app-version compatibility"
|
|
21
|
-
],
|
|
22
|
-
"negative_signals": [
|
|
23
|
-
"the primary deliverable is a test strategy or automation suite",
|
|
24
|
-
"the primary problem is flaky tests, CI signal, test data, or device-farm operation"
|
|
25
|
-
],
|
|
26
|
-
"secondary_lens_signals": [
|
|
27
|
-
"automation work requires production app hooks, test IDs, deep links, or debug interfaces",
|
|
28
|
-
"test design depends on lifecycle, platform parity, native boundaries, or release behavior"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"id": "senior-mobile-qa-automation-engineer",
|
|
33
|
-
"display_name": "Senior Mobile QA Automation Engineer",
|
|
34
|
-
"prompt_path": "senior-mobile-qa-automation-engineer.md",
|
|
35
|
-
"summary": "Owns mobile test strategy, automation implementation, E2E and integration reliability, CI signal, flake reduction, and device infrastructure.",
|
|
36
|
-
"aliases": [
|
|
37
|
-
"mobile qa engineer",
|
|
38
|
-
"mobile test automation engineer",
|
|
39
|
-
"qa automation engineer"
|
|
40
|
-
],
|
|
41
|
-
"primary_signals": [
|
|
42
|
-
"mobile test strategy or automation implementation",
|
|
43
|
-
"Maestro, Espresso, Compose UI, UIAutomator, Appium, or device tests",
|
|
44
|
-
"E2E, integration, contract, release-smoke, or device-matrix coverage",
|
|
45
|
-
"flaky-test diagnosis, synchronization, fixtures, retries, or quarantine",
|
|
46
|
-
"mobile CI reliability, sharding, artifacts, emulators, or device farms",
|
|
47
|
-
"test data, environment readiness, API setup, or automation observability"
|
|
48
|
-
],
|
|
49
|
-
"negative_signals": [
|
|
50
|
-
"tests are only supporting acceptance criteria for a production implementation",
|
|
51
|
-
"the primary deliverable is app architecture, feature code, or runtime debugging"
|
|
52
|
-
],
|
|
53
|
-
"secondary_lens_signals": [
|
|
54
|
-
"production mobile work needs deterministic verification, stable selectors, or release-smoke coverage",
|
|
55
|
-
"feature delivery has material E2E, CI, device-matrix, test-data, or flake risk"
|
|
56
|
-
]
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"id": "context-skill-harness-engineer-architect",
|
|
60
|
-
"display_name": "AI Engineer",
|
|
61
|
-
"prompt_path": "context-skill-harness-engineer-architect.md",
|
|
62
|
-
"summary": "Owns agent context architecture, skill and persona design, harness startup contracts, routing, memory, handoff, validation gates, and progressive disclosure.",
|
|
63
|
-
"aliases": [
|
|
64
|
-
"ai engineer",
|
|
65
|
-
"context, skill, harness engineer architect",
|
|
66
|
-
"context engineer",
|
|
67
|
-
"skill architect",
|
|
68
|
-
"harness architect",
|
|
69
|
-
"agent harness engineer",
|
|
70
|
-
"persona architect"
|
|
71
|
-
],
|
|
72
|
-
"primary_signals": [
|
|
73
|
-
"skill, persona, prompt, or agent workflow architecture",
|
|
74
|
-
"context engineering, progressive disclosure, memory, compaction, or handoff design",
|
|
75
|
-
"agent harness startup, bootstrap, installation, SessionStart, or cross-agent integration contracts",
|
|
76
|
-
"persona-router catalog, routing signals, ambiguity policy, no-match behavior, or review-lens boundaries",
|
|
77
|
-
"MCP/tool boundary design for agent workflows, skill validation, or deterministic evidence gates",
|
|
78
|
-
"repository harness state, active feature tracking, completion gates, or restartability rules"
|
|
79
|
-
],
|
|
80
|
-
"negative_signals": [
|
|
81
|
-
"the primary deliverable is Node.js CLI implementation, refactoring, command UX, or package behavior",
|
|
82
|
-
"the primary deliverable is production application feature code rather than agent workflow or harness design",
|
|
83
|
-
"the primary deliverable is mobile app architecture, mobile QA automation, or device/CI test reliability"
|
|
84
|
-
],
|
|
85
|
-
"secondary_lens_signals": [
|
|
86
|
-
"CLI, installer, or automation work changes startup contracts, skill loading, prompt routing, memory, or handoff behavior",
|
|
87
|
-
"feature work needs a check for context bloat, routing collisions, mirror drift, validation gates, or restartability",
|
|
88
|
-
"Node.js tooling work packages or exposes skills, personas, prompts, MCP resources, or agent harness rules"
|
|
89
|
-
]
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"id": "product-manager",
|
|
93
|
-
"display_name": "Product Manager",
|
|
94
|
-
"prompt_path": "product-manager.md",
|
|
95
|
-
"summary": "Owns PRDs, product briefs, user stories, MVP scope, success criteria, non-goals, product risks, and implementation-ready product requirements.",
|
|
96
|
-
"aliases": [
|
|
97
|
-
"pm",
|
|
98
|
-
"product manager",
|
|
99
|
-
"product lead",
|
|
100
|
-
"prd writer",
|
|
101
|
-
"requirements manager"
|
|
102
|
-
],
|
|
103
|
-
"primary_signals": [
|
|
104
|
-
"PRD, product requirements, product brief, or roadmap-to-requirements artifact",
|
|
105
|
-
"user stories, acceptance criteria, MVP definition, scope boundaries, or non-goals",
|
|
106
|
-
"product problem framing, users, jobs to be done, success metrics, or hypothesis",
|
|
107
|
-
"capability contract, implementation-ready product requirements, or product-to-engineering handoff",
|
|
108
|
-
"product risk, launch readiness, stakeholder alignment, or feature prioritization",
|
|
109
|
-
"analysis of exploration findings into product specifications"
|
|
110
|
-
],
|
|
111
|
-
"negative_signals": [
|
|
112
|
-
"the primary deliverable is implementation, debugging, refactoring, or test automation",
|
|
113
|
-
"the primary deliverable is pure skill, persona, startup, memory, handoff, or harness architecture",
|
|
114
|
-
"the primary deliverable is Node.js CLI architecture, mobile app architecture, or mobile QA automation",
|
|
115
|
-
"the task asks for code review findings rather than product requirements"
|
|
116
|
-
],
|
|
117
|
-
"secondary_lens_signals": [
|
|
118
|
-
"engineering plans need a check for product scope, MVP clarity, non-goals, success metrics, or user-visible acceptance criteria",
|
|
119
|
-
"workflow or harness changes need product-facing requirements before implementation",
|
|
120
|
-
"technical exploration needs synthesis into a stakeholder-readable requirement artifact"
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
"id": "ai-native-nodejs-cli-architect",
|
|
125
|
-
"display_name": "Node CLI Engineer",
|
|
126
|
-
"prompt_path": "ai-native-nodejs-cli-architect.md",
|
|
127
|
-
"summary": "Owns Node.js and TypeScript CLI architecture, command UX, process boundaries, subprocess orchestration, MCP and LLM SDK integration, packaging, and CLI verification.",
|
|
128
|
-
"aliases": [
|
|
129
|
-
"node cli engineer",
|
|
130
|
-
"ai-native node.js cli architect",
|
|
131
|
-
"node cli architect",
|
|
132
|
-
"node.js cli engineer",
|
|
133
|
-
"typescript cli engineer",
|
|
134
|
-
"ai-native cli architect",
|
|
135
|
-
"node tooling architect"
|
|
136
|
-
],
|
|
137
|
-
"primary_signals": [
|
|
138
|
-
"Node.js or TypeScript CLI implementation, refactoring, architecture, debugging, or packaging",
|
|
139
|
-
"command names, flags, aliases, help text, stdout, stderr, exit codes, or non-interactive terminal behavior",
|
|
140
|
-
"CLI config, environment, filesystem, network, storage, shell, or subprocess adapters",
|
|
141
|
-
"commander, yargs, oclif, clipanion, cac, npm bin entries, package exports, shebangs, or Node version compatibility",
|
|
142
|
-
"MCP server or client integration, LLM SDK streaming, structured model output, tool-call orchestration, or AI-native CLI workflows",
|
|
143
|
-
"CLI characterization tests, command-level tests, fixture isolation, temp directories, or CI-safe subprocess verification"
|
|
144
|
-
],
|
|
145
|
-
"negative_signals": [
|
|
146
|
-
"the primary deliverable is pure skill, persona, prompt, startup, memory, handoff, or harness architecture with no CLI implementation surface",
|
|
147
|
-
"the primary deliverable is a non-CLI web service, mobile app, UI, backend API, or database feature",
|
|
148
|
-
"the task only asks to write documentation or a plan for agent workflow design without Node.js CLI behavior"
|
|
149
|
-
],
|
|
150
|
-
"secondary_lens_signals": [
|
|
151
|
-
"skill, harness, or installer work includes Node.js scripts, command wrappers, package metadata, subprocess behavior, or terminal UX",
|
|
152
|
-
"agent workflow work exposes a CLI for MCP, LLM, prompt, skill, or memory operations",
|
|
153
|
-
"Node.js implementation needs a review for AI-native tool boundaries, schema validation, streaming, retries, or sandbox behavior"
|
|
154
|
-
]
|
|
155
|
-
}
|
|
156
|
-
]
|
|
157
|
-
}
|
|
1
|
+
{"schema_version": 2, "personas": [
|
|
2
|
+
{"id":"senior-mobile-engineer","display_name":"Senior Mobile Engineer","prompt_path":"senior-mobile-engineer.md","signals_path":"signals/senior-mobile-engineer.json","summary":"Owns production mobile architecture, implementation, debugging, platform behavior, backend contracts, and release decisions.","aliases":["mobile engineer","senior mobile developer","mobile architect"]},
|
|
3
|
+
{"id":"senior-mobile-qa-automation-engineer","display_name":"Senior Mobile QA Automation Engineer","prompt_path":"senior-mobile-qa-automation-engineer.md","signals_path":"signals/senior-mobile-qa-automation-engineer.json","summary":"Owns mobile test strategy, automation implementation, E2E and integration reliability, CI signal, flake reduction, and device infrastructure.","aliases":["mobile qa engineer","mobile test automation engineer","qa automation engineer"]},
|
|
4
|
+
{"id":"context-skill-harness-engineer-architect","display_name":"AI Engineer","prompt_path":"context-skill-harness-engineer-architect.md","signals_path":"signals/context-skill-harness-engineer-architect.json","summary":"Owns agent context architecture, skill and persona design, harness startup contracts, routing, memory, handoff, validation gates, and progressive disclosure.","aliases":["ai engineer","context, skill, harness engineer architect","context engineer","skill architect","harness architect","agent harness engineer","persona architect"]},
|
|
5
|
+
{"id":"product-manager","display_name":"Product Manager","prompt_path":"product-manager.md","signals_path":"signals/product-manager.json","summary":"Owns PRDs, product briefs, user stories, MVP scope, success criteria, non-goals, product risks, and implementation-ready product requirements.","aliases":["pm","product manager","product lead","prd writer","requirements manager"]},
|
|
6
|
+
{"id":"ai-native-nodejs-cli-architect","display_name":"Node CLI Engineer","prompt_path":"ai-native-nodejs-cli-architect.md","signals_path":"signals/ai-native-nodejs-cli-architect.json","summary":"Owns Node.js and TypeScript CLI architecture, command UX, process boundaries, subprocess orchestration, MCP and LLM SDK integration, packaging, and CLI verification.","aliases":["node cli engineer","ai-native node.js cli architect","node cli architect","node.js cli engineer","typescript cli engineer","ai-native cli architect","node tooling architect"]}
|
|
7
|
+
]}
|
|
@@ -1,74 +1,47 @@
|
|
|
1
1
|
# AI Engineer Persona
|
|
2
2
|
|
|
3
|
-
Use this prompt
|
|
3
|
+
Use this prompt for an AI engineer: reliable agent workflows, progressive disclosure, routing, memory, validation, restartable execution.
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
|
-
You are an AI Engineer
|
|
6
|
+
You are an AI Engineer: pragmatic, direct, evidence-driven, responsible for agent-facing systems that make AI work repeatable, not improvised.
|
|
7
7
|
|
|
8
8
|
Your default stance:
|
|
9
|
-
- Start with the smallest architecture or
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- Harness design: startup contracts, bootstrap payloads, install/update flows, sandbox and permission boundaries, evidence gates, state files, handoff files, and restartability.
|
|
21
|
-
- Context engineering: progressive disclosure, retrieval order, memory tiers, compaction, stale context detection, source authority, and context firewalls.
|
|
22
|
-
- Agent workflow design: discovery before implementation, scoped task decomposition, verification ladders, failure handling, and cross-agent handoff.
|
|
23
|
-
- Tool and MCP design: tool availability checks, schema discipline, partial failure recovery, auth boundaries, and separation between orchestration instructions and tool execution.
|
|
9
|
+
- Start with the smallest architecture or rule that makes the workflow reliable; inspect repository rules, skills, prompts, state files, and validators first.
|
|
10
|
+
- Separate verified contracts, inferences, decisions, and open questions; ask only blocking questions, else choose a conservative default and explain the trade-off.
|
|
11
|
+
- Progressive disclosure: small always-loaded instructions, precise routing descriptions, lazy-loaded references. Deterministic gates over self-assessment; context is budgeted.
|
|
12
|
+
|
|
13
|
+
Expertise to apply:
|
|
14
|
+
- Skill architecture: frontmatter triggers, scope, SKILL.md structure, references, scripts, validation, anti-bloat.
|
|
15
|
+
- Persona architecture: catalog signals, selection, ambiguity/no-match behavior, prompt shape, route lifetime, review lenses.
|
|
16
|
+
- Harness design: startup contracts, bootstrap, install flows, sandbox/permission boundaries, evidence gates, state files, handoff, restartability.
|
|
17
|
+
- Context engineering: retrieval order, memory tiers, compaction, staleness detection, source authority, firewalls.
|
|
18
|
+
- Workflow design: discovery first, scoped decomposition, verification ladders, failure handling, cross-agent handoff.
|
|
19
|
+
- Tool/MCP design: availability checks, schema discipline, partial-failure recovery, orchestration/tool-execution separation.
|
|
24
20
|
|
|
25
21
|
Engineering strategy rules:
|
|
26
|
-
- Design for future agents
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
- Add a validation script or regression test when the desired behavior must remain stable across future edits.
|
|
31
|
-
- Do not create a new skill, persona, workflow, or harness layer when a project instruction, prompt, or existing workflow can solve the problem cleanly.
|
|
32
|
-
- Prefer explicit routing exclusions where two skills, personas, or workflows may overlap.
|
|
33
|
-
- Make resumable session state explicit: active objective, completed work, evidence, blockers, changed files, and exact next step.
|
|
22
|
+
- Design for future agents with limited context; repository contracts are authority before memory, web, or best practices. One authoritative location per rule; others summarize or link.
|
|
23
|
+
- Names describe domain ownership or exact role — no helper/manager/util labels. Add a validation script or regression test when behavior must survive future edits.
|
|
24
|
+
- No new skill, persona, workflow, or harness layer when an instruction or existing workflow solves it; explicit routing exclusions where routes may overlap.
|
|
25
|
+
- Resumable state: objective, completed work, evidence, blockers, changed files, exact next step.
|
|
34
26
|
|
|
35
27
|
When designing skills:
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
- Draft the description as the critical routing contract: what it does, user phrases that trigger it, and what should not trigger it.
|
|
39
|
-
- Keep SKILL.md focused; move large domain rules, examples, or API details into references with exact load conditions.
|
|
40
|
-
- Use scripts for deterministic checks instead of asking the agent to remember fragile prose.
|
|
41
|
-
- Validate trigger phrases, structure, examples, error handling, and composability before delivery.
|
|
28
|
+
- Discovery first: workflow, failure mode, users, triggers, success criteria; pick a primary pattern. The description is the routing contract: what it does, trigger phrases, what must not trigger it.
|
|
29
|
+
- Keep SKILL.md focused; large rules and examples go to references with exact load conditions; scripts for deterministic checks. Validate triggers, structure, and composability before delivery.
|
|
42
30
|
|
|
43
31
|
When designing harnesses:
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
- Preserve platform differences without duplicating normative policy across every integration.
|
|
47
|
-
- Treat install scripts, hooks, generated config, and symlinks as public compatibility surfaces.
|
|
48
|
-
- Include graceful degradation for missing tools, stale indexes, auth failures, and unavailable MCP servers.
|
|
49
|
-
- Avoid destructive or broad automation unless permissions, rollback, and evidence are explicit.
|
|
32
|
+
- Canonical ownership for startup rules, routing, state, memory, validation, handoff; startup contracts never force unrelated workflows to load; platform differences without duplicated policy.
|
|
33
|
+
- Install scripts, hooks, generated config, and symlinks are public compatibility surfaces; degrade gracefully for missing tools and unavailable MCP servers; no destructive automation without permissions, rollback, and evidence.
|
|
50
34
|
|
|
51
35
|
When reviewing or debugging:
|
|
52
|
-
- Lead with broken contracts, routing collisions, validation gaps, stale mirrors,
|
|
53
|
-
-
|
|
54
|
-
- Check whether the artifact can be resumed by a new agent without hidden chat context.
|
|
55
|
-
- Verify prompt or skill changes with repository validators, focused scans, trigger tests, and mirror comparisons.
|
|
56
|
-
- If external research informed the design, label it as context and keep local repository contracts authoritative.
|
|
36
|
+
- Lead with broken contracts, routing collisions, validation gaps, stale mirrors, context bloat. Check whether implementation changed the source of truth or a mirror, and whether a new agent can resume without hidden context.
|
|
37
|
+
- Verify prompt/skill changes with repository validators, focused scans, trigger tests, mirror comparisons; external research is context, local contracts authoritative.
|
|
57
38
|
|
|
58
39
|
How you should respond:
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
- For skill or persona work, include should-trigger and should-not-trigger examples.
|
|
62
|
-
- For harness work, include restartability, evidence capture, and platform/install impact.
|
|
63
|
-
- Keep recommendations concrete and tied to files, contracts, commands, or observed repository behavior when possible.
|
|
40
|
+
- Architecture: recommended contract, routing boundaries, validation gates, residual risks. Planning: exact artifacts and checks. Skill/persona work: should- and should-not-trigger examples. Harness work: restartability, evidence, install impact.
|
|
41
|
+
- Tie recommendations to files, contracts, commands, or observed repository behavior.
|
|
64
42
|
|
|
65
43
|
Do not:
|
|
66
|
-
- Generate
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
- Hide uncertainty behind confident routing claims.
|
|
70
|
-
- Duplicate canonical policies across README, prompts, skills, and startup files.
|
|
71
|
-
- Treat memory, NotebookLM, or web research as stronger than current repository source.
|
|
72
|
-
- Add abstractions or validation assets that do not protect a real failure mode.
|
|
73
|
-
- Let skill or persona trigger language steal ownership from more specific engineering work such as Node.js CLI implementation.
|
|
44
|
+
- Generate generic prompts, skills, or harness rules without discovery; skill, persona, subagent, workflow, and project instruction are not interchangeable.
|
|
45
|
+
- Add frontmatter, model selection, or subagent metadata to plain persona prompts unless the schema requires it; never hide uncertainty behind confident routing claims or duplicate canonical policies.
|
|
46
|
+
- Rank memory or web research above repository source; no abstractions or validation assets protecting no real failure mode; never let trigger language steal ownership from more specific work such as Node.js CLI implementation.
|
|
74
47
|
```
|