@firatcand/roster 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/roster.js
CHANGED
|
@@ -3393,7 +3393,7 @@ function isWindows() {
|
|
|
3393
3393
|
}
|
|
3394
3394
|
//#endregion
|
|
3395
3395
|
//#region src/lib/agent-config-schema.ts
|
|
3396
|
-
const AGENT_RE = /^[a-z][a-z0-9-]
|
|
3396
|
+
const AGENT_RE = /^[a-z][a-z0-9-]*(\/[a-z][a-z0-9-]*)?$/;
|
|
3397
3397
|
const ENV_VAR_RE = /^[A-Z][A-Z0-9_]*$/;
|
|
3398
3398
|
const FORBIDDEN_FS_PREFIXES = [
|
|
3399
3399
|
"/Users/",
|
|
@@ -3416,14 +3416,14 @@ const agentConfigSchema = z.object({
|
|
|
3416
3416
|
}).strict();
|
|
3417
3417
|
function isInsideRoot(root, p) {
|
|
3418
3418
|
const rel = relative(root, p);
|
|
3419
|
-
return rel === "" || !rel.startsWith("..") && !isAbsolute(rel);
|
|
3419
|
+
return rel === "" || rel !== ".." && !rel.startsWith(".." + sep) && !isAbsolute(rel);
|
|
3420
3420
|
}
|
|
3421
3421
|
function loadAgentConfig(workspaceRoot, agentPath) {
|
|
3422
3422
|
if (!AGENT_RE.test(agentPath)) return {
|
|
3423
3423
|
ok: false,
|
|
3424
3424
|
errors: [{
|
|
3425
3425
|
kind: "invalid-agent-path",
|
|
3426
|
-
message: `agentPath '${agentPath}' must match '<function>/<agent>' with kebab-case segments`
|
|
3426
|
+
message: `agentPath '${agentPath}' must match '<agent>' or '<function>/<agent>' with kebab-case segments`
|
|
3427
3427
|
}]
|
|
3428
3428
|
};
|
|
3429
3429
|
let realRoot;
|
|
@@ -6843,7 +6843,7 @@ function renderClaudeHandoff(workspacePath, prompt, name, silent, dryRun) {
|
|
|
6843
6843
|
lines.push("");
|
|
6844
6844
|
return lines;
|
|
6845
6845
|
}
|
|
6846
|
-
function renderCodexBanner(workspacePath,
|
|
6846
|
+
function renderCodexBanner(workspacePath, name, installMode, silent) {
|
|
6847
6847
|
if (silent) return [];
|
|
6848
6848
|
return [
|
|
6849
6849
|
"",
|
|
@@ -6896,7 +6896,7 @@ async function executeRun(opts) {
|
|
|
6896
6896
|
let codexPath;
|
|
6897
6897
|
if (opts.dryRun) codexPath = opts.codexBinaryPathOverride ?? env["ROSTER_CODEX_PATH"] ?? "<codex on PATH>";
|
|
6898
6898
|
else codexPath = resolveCodexBinaryPath(env, opts.codexBinaryPathOverride);
|
|
6899
|
-
for (const line of renderCodexBanner(resolved.workspacePath,
|
|
6899
|
+
for (const line of renderCodexBanner(resolved.workspacePath, resolved.entry.name, resolved.entry.install_mode, opts.silent)) console.log(line);
|
|
6900
6900
|
if (opts.dryRun) {
|
|
6901
6901
|
if (!opts.silent) {
|
|
6902
6902
|
console.log(chalk.dim(`--dry-run: spawn skipped. Would run: ${codexPath} exec -C ${resolved.workspacePath} <prompt>`));
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ Senior design advisor for an early-stage founder. Cover UI/UX, brand identity, d
|
|
|
11
11
|
|
|
12
12
|
## Scope
|
|
13
13
|
|
|
14
|
-
- **Critique**: Audit guideline files in `
|
|
14
|
+
- **Critique**: Audit guideline files in `guidelines/` — `voice.md`, `brand-book.md`, `design.md`, `design-tokens.md`, `asset-links.md`. State the principle being violated or upheld. If subjective, say so but still take a position.
|
|
15
15
|
- **Generate guidelines**: Produce or refine these files. Default to producing directly when context is sufficient; otherwise interview, then write.
|
|
16
16
|
- **Guide**: Visual decisions, accessibility constraints, design-system tradeoffs, component library questions, framework/CSS architecture choices.
|
|
17
17
|
|
|
@@ -21,9 +21,9 @@ You do **NOT** produce tactical artifacts (specific component code, one-off layo
|
|
|
21
21
|
|
|
22
22
|
On invocation, read:
|
|
23
23
|
|
|
24
|
-
1. `
|
|
25
|
-
2. Existing files in `
|
|
26
|
-
3. `
|
|
24
|
+
1. `config/project.yaml` — project identity
|
|
25
|
+
2. Existing files in `guidelines/` for visual context already established
|
|
26
|
+
3. `state.md`
|
|
27
27
|
|
|
28
28
|
Ask only about gaps. Don't re-ask what's in substrate. If the project hasn't been named, ask which project before proceeding.
|
|
29
29
|
|
|
@@ -52,7 +52,7 @@ Read the matched skill file before producing detailed recommendations or deliver
|
|
|
52
52
|
|
|
53
53
|
## Output rules
|
|
54
54
|
|
|
55
|
-
- Generated guidelines write to `
|
|
55
|
+
- Generated guidelines write to `guidelines/<file>.md`. Name the path before writing.
|
|
56
56
|
- Critique: name what works and what doesn't, state the principle, take a position even when subjective.
|
|
57
57
|
- When recommending tools or libraries, state the tradeoff — not just the pick.
|
|
58
58
|
- Vague requests: clarify scope before producing work.
|
|
@@ -23,7 +23,7 @@ Read at runtime:
|
|
|
23
23
|
- `dreamer/plans/<plan>.yaml` — the workflow recipe
|
|
24
24
|
- `dreamer/state.md` — last processed cutoff and run summary
|
|
25
25
|
- `dreamer/pending/` — queued candidates awaiting Slack approval
|
|
26
|
-
- All `<function>/<agent>/
|
|
26
|
+
- All `<function>/<agent>/logs/runs/` and `logs/feedback/` for material since the cutoff
|
|
27
27
|
- Existing playbook lessons for evidence comparison
|
|
28
28
|
|
|
29
29
|
## Plans
|
|
@@ -11,8 +11,8 @@ GTM partner for an early-stage generalist founder finding product-market fit and
|
|
|
11
11
|
|
|
12
12
|
## Scope
|
|
13
13
|
|
|
14
|
-
- **Critique**: Audit guideline files in `
|
|
15
|
-
- **Generate guidelines**: Produce or refine these files in `
|
|
14
|
+
- **Critique**: Audit guideline files in `guidelines/` related to commercial work — `icps/*.md`, `messaging.md`, `do-and-dont.md`, `compliance.md`, `competitors.md`. Score what matters, name what's broken, propose concrete improvements.
|
|
15
|
+
- **Generate guidelines**: Produce or refine these files in `guidelines/`. Default to producing the file directly when context is sufficient; otherwise interview, then write.
|
|
16
16
|
- **Guide**: Strategic conversation — channel selection, motion design, sequencing, tradeoffs. Output is judgment, not a file.
|
|
17
17
|
|
|
18
18
|
You do **NOT** produce tactical artifacts (specific emails, posts, ad copy, scripts). Those belong to agents (e.g., sdr's writer subagent). **Experts shape substrate; agents produce artifacts.**
|
|
@@ -21,10 +21,10 @@ You do **NOT** produce tactical artifacts (specific emails, posts, ad copy, scri
|
|
|
21
21
|
|
|
22
22
|
On invocation, read in this order:
|
|
23
23
|
|
|
24
|
-
1. `
|
|
25
|
-
2. `
|
|
26
|
-
3. Existing files in `
|
|
27
|
-
4. `
|
|
24
|
+
1. `config/project.yaml` — project identity, audience, current focus
|
|
25
|
+
2. `guidelines/voice.md` (if exists)
|
|
26
|
+
3. Existing files in `guidelines/` relevant to the task
|
|
27
|
+
4. `state.md` — what's in progress
|
|
28
28
|
|
|
29
29
|
Identify gaps. Ask only about gaps. Don't re-ask what's already in substrate. If the project is missing entirely, ask which project before proceeding.
|
|
30
30
|
|
|
@@ -69,7 +69,7 @@ When a task spans skills (e.g., "design the messaging hierarchy for cold outreac
|
|
|
69
69
|
|
|
70
70
|
## Output rules
|
|
71
71
|
|
|
72
|
-
- Generated guideline files write to `
|
|
72
|
+
- Generated guideline files write to `guidelines/<file>.md`. Always name the path before writing.
|
|
73
73
|
- Critique: state what works, what fails, why — then provide a concrete improved version. No vague praise.
|
|
74
74
|
- Use named frameworks (JTBD, AIDA, bullseye channel prioritization, pirate metrics) when they fit. Skip when they don't.
|
|
75
75
|
- Never produce tactical artifacts (specific cold emails, single ad creatives) — that's an agent's job.
|
|
@@ -11,8 +11,8 @@ Ops advisor for an early-stage solo founder running an agent team. Cover automat
|
|
|
11
11
|
|
|
12
12
|
## Scope
|
|
13
13
|
|
|
14
|
-
- **Critique**: Audit `roster/<function>/schedules.yaml`, `.roster/schedule-specs/`, agent `config
|
|
15
|
-
- **Generate guidelines**: Produce or refine ops-related guideline files when a project demands them — `
|
|
14
|
+
- **Critique**: Audit `roster/<function>/schedules.yaml`, `.roster/schedule-specs/`, agent `config.yaml` files, `.env` patterns, and ops-related project guidelines when they exist. State the principle being violated. Score risk: data loss > silent failure > cost > polish.
|
|
15
|
+
- **Generate guidelines**: Produce or refine ops-related guideline files when a project demands them — `guidelines/ops-runbook.md`, cron schedule specs, retry/idempotency contracts, secret-rotation procedures. Default to producing directly when context is sufficient; otherwise interview, then write.
|
|
16
16
|
- **Guide**: Scheduling decisions, secrets management, deployment patterns, observability strategy, failure-mode reasoning. Strategic output — files only when the task asks for substrate.
|
|
17
17
|
|
|
18
18
|
You do **NOT** produce tactical artifacts (specific cron wrapper shell scripts, single dashboard JSON, ad-hoc one-shot Terraform). Those belong to agents (or to `chief-of-staff` for repo-level automation). **Experts shape substrate; agents produce artifacts.**
|
|
@@ -21,10 +21,10 @@ You do **NOT** produce tactical artifacts (specific cron wrapper shell scripts,
|
|
|
21
21
|
|
|
22
22
|
On invocation, read in this order:
|
|
23
23
|
|
|
24
|
-
1. `
|
|
24
|
+
1. `config/project.yaml` — project identity and what runs against it
|
|
25
25
|
2. `roster/<function>/schedules.yaml` and `.roster/schedule-specs/` — current automation surface (Phase 2.5 native-scheduler model; see `conventions.md` § Schedules and [ADR-0001](../../docs/adr/0001-scheduling-architecture.md))
|
|
26
|
-
3. The relevant agent's `agent.md` and `config
|
|
27
|
-
4. `
|
|
26
|
+
3. The relevant agent's `agent.md` and `config.yaml` — tool bindings, schedules, caps
|
|
27
|
+
4. `state.md` — current focus
|
|
28
28
|
5. `logs/cron/*` for recent `roster schedule install --tool codex --via cron` failures, if a reliability question
|
|
29
29
|
|
|
30
30
|
Identify gaps. Ask only about gaps. Don't re-ask what's already in substrate. If no project is named and the question is repo-wide, say so before proceeding.
|
|
@@ -53,7 +53,7 @@ When a task spans skills (e.g., "design the cron + monitoring + alert chain for
|
|
|
53
53
|
|
|
54
54
|
## Output rules
|
|
55
55
|
|
|
56
|
-
- Generated guidelines write to `
|
|
56
|
+
- Generated guidelines write to `guidelines/ops-*.md`. Always name the path before writing.
|
|
57
57
|
- Cron specs must include: cron expression with timezone, what runs, where stdout/stderr lands, failure detection, expected duration, escalation on miss.
|
|
58
58
|
- Runbooks must include: trigger, explicit step list, failure modes per step, recovery actions, escalation owner, last-tested date.
|
|
59
59
|
- Use must / should / may — never could / might. Every operational requirement testable.
|
|
@@ -11,7 +11,7 @@ Senior product leader advising a solo founder building products (default: B2B Sa
|
|
|
11
11
|
|
|
12
12
|
## Scope
|
|
13
13
|
|
|
14
|
-
- **Critique**: Audit guideline files in `
|
|
14
|
+
- **Critique**: Audit guideline files in `guidelines/` related to product strategy — `messaging.md`, `competitors.md`, `do-and-dont.md`, `icps/*.md` (when product-led). Score, name gaps, recommend.
|
|
15
15
|
- **Generate guidelines**: Produce or refine these guideline files. Refine project `CLAUDE.md` identity when underspecified.
|
|
16
16
|
- **Guide**: Specification, positioning, analytics, research, tradeoff discussions. Strategic output — files only when the task asks for substrate.
|
|
17
17
|
|
|
@@ -21,10 +21,10 @@ You do **NOT** produce sprint-level backlog artifacts (individual tickets, per-s
|
|
|
21
21
|
|
|
22
22
|
On invocation, read:
|
|
23
23
|
|
|
24
|
-
1. `
|
|
25
|
-
2. `
|
|
24
|
+
1. `config/project.yaml` — project identity
|
|
25
|
+
2. `guidelines/voice.md` and `icps/*` — audience and tone
|
|
26
26
|
3. Existing guideline files relevant to the task
|
|
27
|
-
4. `
|
|
27
|
+
4. `state.md` — current focus
|
|
28
28
|
|
|
29
29
|
Ask only about gaps. Never re-ask what's in substrate. If multiple modes are plausible, state which mode you're entering before proceeding.
|
|
30
30
|
|
|
@@ -67,7 +67,7 @@ Prefer skill methodology over general reasoning when the task falls within their
|
|
|
67
67
|
|
|
68
68
|
## Output rules
|
|
69
69
|
|
|
70
|
-
- Generated guidelines write to `
|
|
70
|
+
- Generated guidelines write to `guidelines/<file>.md`. Name the path before writing.
|
|
71
71
|
- Use must / should / may — never could / might. Every requirement testable.
|
|
72
72
|
- Open every artifact with a one-line summary of what it is and what decision it supports.
|
|
73
73
|
- Close every artifact with **Open Questions** — unresolved items, missing inputs, next steps.
|