@firatcand/roster 0.1.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/LICENSE +21 -0
- package/README.md +272 -0
- package/agents/critic.md +74 -0
- package/agents/enricher.md +56 -0
- package/agents/lesson-drafter.md +64 -0
- package/agents/pattern-detector.md +62 -0
- package/agents/promotion-arbiter.md +71 -0
- package/agents/prospector.md +51 -0
- package/agents/writer.md +58 -0
- package/bin/roster.js +2093 -0
- package/lib/.gitkeep +0 -0
- package/package.json +68 -0
- package/skills/chief-of-staff/SKILL.md +218 -0
- package/skills/dreamer/SKILL.md +112 -0
- package/skills/roster-orchestrator/SKILL.md +122 -0
- package/skills/sdr/SKILL.md +147 -0
- package/templates/CLAUDE.project.template.md +45 -0
- package/templates/CONTEXT.template.md +51 -0
- package/templates/env.example +25 -0
- package/templates/gitignore-defaults.txt +28 -0
- package/templates/scaffold/.config/functions.yaml +22 -0
- package/templates/scaffold/chief-of-staff/README.md +86 -0
- package/templates/scaffold/chief-of-staff/agent.md +122 -0
- package/templates/scaffold/chief-of-staff/logs/.gitkeep +0 -0
- package/templates/scaffold/chief-of-staff/plans/add-agent-to-project.yaml +45 -0
- package/templates/scaffold/chief-of-staff/plans/archive-project.yaml +51 -0
- package/templates/scaffold/chief-of-staff/plans/audit-agent.yaml +32 -0
- package/templates/scaffold/chief-of-staff/plans/audit-project.yaml +34 -0
- package/templates/scaffold/chief-of-staff/plans/audit-repo.yaml +26 -0
- package/templates/scaffold/chief-of-staff/plans/create-agent.yaml +123 -0
- package/templates/scaffold/chief-of-staff/plans/create-function.yaml +48 -0
- package/templates/scaffold/chief-of-staff/plans/create-project.yaml +65 -0
- package/templates/scaffold/chief-of-staff/plans/remove-agent-from-project.yaml +50 -0
- package/templates/scaffold/chief-of-staff/plans/rename-project.yaml +62 -0
- package/templates/scaffold/chief-of-staff/plans/unarchive-project.yaml +41 -0
- package/templates/scaffold/chief-of-staff/playbook/.gitkeep +0 -0
- package/templates/scaffold/conventions.md +608 -0
- package/templates/scaffold/design/.gitkeep +0 -0
- package/templates/scaffold/design/EXPERT.md +68 -0
- package/templates/scaffold/dreamer/README.md +32 -0
- package/templates/scaffold/dreamer/agent.md +101 -0
- package/templates/scaffold/dreamer/logs/.gitkeep +0 -0
- package/templates/scaffold/dreamer/pending/.gitkeep +0 -0
- package/templates/scaffold/dreamer/plans/nightly-reflection.yaml +113 -0
- package/templates/scaffold/dreamer/playbook/.gitkeep +0 -0
- package/templates/scaffold/dreamer/state.md +13 -0
- package/templates/scaffold/dreamer/subagents/lesson-drafter.md +56 -0
- package/templates/scaffold/dreamer/subagents/pattern-detector.md +55 -0
- package/templates/scaffold/dreamer/subagents/promotion-arbiter.md +64 -0
- package/templates/scaffold/gtm/EXPERT.md +83 -0
- package/templates/scaffold/gtm/sdr/.claude/settings.json +3 -0
- package/templates/scaffold/gtm/sdr/.mcp.json +21 -0
- package/templates/scaffold/gtm/sdr/README.md +46 -0
- package/templates/scaffold/gtm/sdr/agent.md +136 -0
- package/templates/scaffold/gtm/sdr/plans/cold-outreach.yaml +92 -0
- package/templates/scaffold/gtm/sdr/playbook/.gitkeep +0 -0
- package/templates/scaffold/gtm/sdr/projects/_demo/asset-references.md +7 -0
- package/templates/scaffold/gtm/sdr/projects/_demo/config/default.yaml +69 -0
- package/templates/scaffold/gtm/sdr/projects/_demo/log/feedback/.gitkeep +0 -0
- package/templates/scaffold/gtm/sdr/projects/_demo/log/runs/.gitkeep +0 -0
- package/templates/scaffold/gtm/sdr/projects/_demo/playbook/.gitkeep +0 -0
- package/templates/scaffold/gtm/sdr/subagents/critic.md +67 -0
- package/templates/scaffold/gtm/sdr/subagents/enricher.md +49 -0
- package/templates/scaffold/gtm/sdr/subagents/prospector.md +44 -0
- package/templates/scaffold/gtm/sdr/subagents/writer.md +51 -0
- package/templates/scaffold/logs/cron/.gitkeep +0 -0
- package/templates/scaffold/ops/.gitkeep +0 -0
- package/templates/scaffold/ops/EXPERT.md +84 -0
- package/templates/scaffold/product/.gitkeep +0 -0
- package/templates/scaffold/product/EXPERT.md +87 -0
- package/templates/scaffold/projects/_demo/CLAUDE.md +35 -0
- package/templates/scaffold/projects/_demo/README.md +16 -0
- package/templates/scaffold/projects/_demo/assets/.gitkeep +0 -0
- package/templates/scaffold/projects/_demo/config/default.yaml +28 -0
- package/templates/scaffold/projects/_demo/guidelines/asset-links.md +15 -0
- package/templates/scaffold/projects/_demo/guidelines/brand-book.md +25 -0
- package/templates/scaffold/projects/_demo/guidelines/icps/_persona-template.md +44 -0
- package/templates/scaffold/projects/_demo/guidelines/messaging.md +20 -0
- package/templates/scaffold/projects/_demo/guidelines/voice.md +29 -0
- package/templates/scaffold/projects/_demo/state.md +11 -0
- package/templates/scaffold/scripts/lib/README.md +13 -0
- package/templates/scaffold/scripts/lib/functions.sh +89 -0
- package/templates/scaffold/scripts/new-project.sh +125 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
plan: audit-project
|
|
2
|
+
description: |
|
|
3
|
+
Validate a project's completeness. Reports issues with suggested fixes;
|
|
4
|
+
never auto-fixes. Checks required guideline files (non-template content),
|
|
5
|
+
optional files (presence only), root files, agent instances, and
|
|
6
|
+
instance↔CLAUDE.md consistency.
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
project:
|
|
10
|
+
required: true
|
|
11
|
+
description: Project slug (must exist at projects/<slug>/).
|
|
12
|
+
|
|
13
|
+
outputs:
|
|
14
|
+
status: string # pass | warn | fail
|
|
15
|
+
report_path: string
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- id: execute
|
|
19
|
+
tool: bash
|
|
20
|
+
args:
|
|
21
|
+
command: bash scripts/audit-project.sh ${inputs.project}
|
|
22
|
+
description: Run the backing audit script.
|
|
23
|
+
|
|
24
|
+
- id: report
|
|
25
|
+
description: |
|
|
26
|
+
Print the condensed summary to stdout. Reference the full report at
|
|
27
|
+
chief-of-staff/logs/<YYYY-MM>/audit-${inputs.project}-<YYYY-MM-DD-HHMM>.md.
|
|
28
|
+
Severity rules:
|
|
29
|
+
- Failure: required file missing/template, instance config invalid YAML,
|
|
30
|
+
instance project field mismatches folder name.
|
|
31
|
+
- Warning: optional file missing, instance not listed in CLAUDE.md,
|
|
32
|
+
last run > 30 days old.
|
|
33
|
+
|
|
34
|
+
approval_channel: session
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
plan: audit-repo
|
|
2
|
+
description: |
|
|
3
|
+
Full-repo audit. Runs project audits for every live project and agent
|
|
4
|
+
audits for every live agent. Aggregates into one report. Also checks
|
|
5
|
+
universal .mcp.json, universal .claude/settings.json, root CLAUDE.md /
|
|
6
|
+
conventions.md / README.md, and orphaned instances.
|
|
7
|
+
|
|
8
|
+
inputs: {}
|
|
9
|
+
|
|
10
|
+
outputs:
|
|
11
|
+
status: string # pass | warn | fail
|
|
12
|
+
report_path: string
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- id: execute
|
|
16
|
+
tool: bash
|
|
17
|
+
args:
|
|
18
|
+
command: bash scripts/audit-repo.sh
|
|
19
|
+
description: Run the backing aggregator script.
|
|
20
|
+
|
|
21
|
+
- id: report
|
|
22
|
+
description: |
|
|
23
|
+
Print top-level summary. Reference the full report at
|
|
24
|
+
chief-of-staff/logs/<YYYY-MM>/audit-repo-<YYYY-MM-DD-HHMM>.md.
|
|
25
|
+
|
|
26
|
+
approval_channel: session
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
plan: create-agent
|
|
2
|
+
description: |
|
|
3
|
+
Create a new global agent under a registered function. Runs in one of two
|
|
4
|
+
modes:
|
|
5
|
+
|
|
6
|
+
- **stub** — byte-identical to `bash scripts/new-agent.sh`. Drops empty
|
|
7
|
+
placeholder files (purpose `<one paragraph...>`, plan stubs, etc.) and
|
|
8
|
+
exits. Headless / CI / legacy escape hatch.
|
|
9
|
+
- **guided** — runs the Guided Agent Creation dialogue defined in
|
|
10
|
+
`skills/chief-of-staff/SKILL.md` § "Guided Agent Creation" (see P4-T02).
|
|
11
|
+
Produces the same on-disk layout as stub mode, but with agent.md
|
|
12
|
+
sections filled in from the dialogue answers.
|
|
13
|
+
|
|
14
|
+
Either mode optionally instances the resulting agent into existing
|
|
15
|
+
projects (or prompts the caller to pick).
|
|
16
|
+
|
|
17
|
+
inputs:
|
|
18
|
+
function:
|
|
19
|
+
required: true
|
|
20
|
+
description: Function slug (must be registered in `.config/functions.yaml`).
|
|
21
|
+
agent:
|
|
22
|
+
required: true
|
|
23
|
+
description: Agent slug (lowercase, kebab-case, starts with letter).
|
|
24
|
+
mode:
|
|
25
|
+
required: false
|
|
26
|
+
description: |
|
|
27
|
+
Explicit branch override: `stub` or `guided`. If omitted, `resolve_mode`
|
|
28
|
+
picks based on env + TTY (see that step).
|
|
29
|
+
add-to-projects:
|
|
30
|
+
required: false
|
|
31
|
+
description: List of project slugs to instance into. If omitted, the cross-link prompt runs.
|
|
32
|
+
|
|
33
|
+
outputs:
|
|
34
|
+
agent_path: string
|
|
35
|
+
instance_paths: list
|
|
36
|
+
mode_used: string # "stub" or "guided" — which branch executed.
|
|
37
|
+
files_written: list # absolute paths of every file the plan created or modified.
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- id: validate
|
|
41
|
+
description: |
|
|
42
|
+
Confirm ${inputs.function} is registered. Validate ${inputs.agent} slug
|
|
43
|
+
against `^[a-z][a-z0-9-]*$`. Confirm `${inputs.function}/${inputs.agent}/`
|
|
44
|
+
does not already exist. If ${inputs.mode} is provided, validate it is
|
|
45
|
+
one of {stub, guided}. If ${inputs.add-to-projects} provided, validate
|
|
46
|
+
each project exists at `projects/<slug>/`. If any are missing, abort.
|
|
47
|
+
|
|
48
|
+
- id: resolve_mode
|
|
49
|
+
description: |
|
|
50
|
+
Pick the scaffold branch by priority — first match wins:
|
|
51
|
+
1. `${inputs.mode}` (if non-empty).
|
|
52
|
+
2. `AGENT_TEAM_NO_CONFIRM=1` in env → `stub`. (Headless / CI signal.)
|
|
53
|
+
3. TTY detection: stdin is a TTY → `guided`; otherwise → `stub`.
|
|
54
|
+
|
|
55
|
+
Store the result in `${resolved_mode}` and surface it later as
|
|
56
|
+
`${outputs.mode_used}`. Print the resolved mode + the rule that won
|
|
57
|
+
(e.g., `mode=guided (TTY detected)`) so the caller can see why.
|
|
58
|
+
|
|
59
|
+
- id: scaffold_stub
|
|
60
|
+
when: ${resolved_mode} == "stub"
|
|
61
|
+
tool: bash
|
|
62
|
+
args:
|
|
63
|
+
command: bash scripts/new-agent.sh ${inputs.function} ${inputs.agent}
|
|
64
|
+
description: |
|
|
65
|
+
Delegate to `scripts/new-agent.sh` unchanged. Output must remain
|
|
66
|
+
byte-identical to invoking the script directly — this is the legacy /
|
|
67
|
+
headless escape hatch and any drift breaks reproducibility for
|
|
68
|
+
callers that already script against the stub layout. Append every
|
|
69
|
+
path the script reports as "Created:" to `${files_written}`.
|
|
70
|
+
|
|
71
|
+
- id: guided_dialogue
|
|
72
|
+
when: ${resolved_mode} == "guided"
|
|
73
|
+
description: |
|
|
74
|
+
Run the Guided Agent Creation dialogue defined in
|
|
75
|
+
`skills/chief-of-staff/SKILL.md` § "Guided Agent Creation" (P4-T02).
|
|
76
|
+
That contract owns the prompt sequence, the structured-output schema,
|
|
77
|
+
validation rules, and the on-disk write list. It produces the same
|
|
78
|
+
directory layout as `scaffold_stub` (same paths, same `.gitkeep`s),
|
|
79
|
+
but with `agent.md` sections filled in from the dialogue answers and
|
|
80
|
+
a real description in `.claude/commands/<agent>.md` instead of the
|
|
81
|
+
`TODO: fill in description` placeholder. Append every file touched
|
|
82
|
+
to `${files_written}`.
|
|
83
|
+
|
|
84
|
+
- id: resolve_projects
|
|
85
|
+
description: |
|
|
86
|
+
Branch on whether ${inputs.add-to-projects} was provided.
|
|
87
|
+
- If provided: use the list directly.
|
|
88
|
+
- If omitted: discover all live projects (every dir under `projects/`
|
|
89
|
+
that is not `_template` and does not start with `_`). If empty,
|
|
90
|
+
skip instancing and report "no live projects yet."
|
|
91
|
+
Otherwise present a multi-select via AskUserQuestion with options
|
|
92
|
+
[All projects, ...each project, None — agent stays global-only]
|
|
93
|
+
and `multiSelect: true`.
|
|
94
|
+
|
|
95
|
+
- id: instance_into_projects
|
|
96
|
+
tool: bash
|
|
97
|
+
args:
|
|
98
|
+
command: |
|
|
99
|
+
for proj in ${resolved_projects}; do
|
|
100
|
+
bash scripts/new-agent-instance.sh "$proj" ${inputs.function} ${inputs.agent}
|
|
101
|
+
done
|
|
102
|
+
description: |
|
|
103
|
+
For each resolved project, run `new-agent-instance.sh` and append the
|
|
104
|
+
instance line to `projects/<project>/CLAUDE.md` under
|
|
105
|
+
`## Active agent instances`. Append every created instance path to
|
|
106
|
+
`${files_written}`.
|
|
107
|
+
|
|
108
|
+
- id: report
|
|
109
|
+
description: |
|
|
110
|
+
Print `${outputs.mode_used}`, the global agent path, every instance
|
|
111
|
+
path, and the full `${files_written}` list.
|
|
112
|
+
|
|
113
|
+
In **stub** mode, surface the script's "Next steps" output verbatim
|
|
114
|
+
(fill `agent.md`, add subagents, configure MCPs, add at least one
|
|
115
|
+
plan, edit the slash command description) — the placeholders are
|
|
116
|
+
still empty and the caller has to finish them.
|
|
117
|
+
|
|
118
|
+
In **guided** mode, those next steps are mostly already done. Print
|
|
119
|
+
only the residual ones: wire MCPs in `.mcp.json`, write the first
|
|
120
|
+
plan in `plans/`, and review the generated `agent.md` for any
|
|
121
|
+
dialogue answers that should be refined.
|
|
122
|
+
|
|
123
|
+
approval_channel: session
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
plan: create-function
|
|
2
|
+
description: |
|
|
3
|
+
Add a new function category to the registry. Scaffolds the folder, stub
|
|
4
|
+
README, and optionally an EXPERT.md stub. Surfaces a soft proliferation
|
|
5
|
+
reminder before scaffolding.
|
|
6
|
+
|
|
7
|
+
inputs:
|
|
8
|
+
function:
|
|
9
|
+
required: true
|
|
10
|
+
description: Function slug (lowercase, kebab-case, must not exist as a folder or in .config/functions.yaml).
|
|
11
|
+
description:
|
|
12
|
+
required: false
|
|
13
|
+
description: Free-text description of the function. If omitted, prompted.
|
|
14
|
+
has_expert:
|
|
15
|
+
required: false
|
|
16
|
+
description: Whether to scaffold an EXPERT.md stub. If omitted, prompted.
|
|
17
|
+
|
|
18
|
+
outputs:
|
|
19
|
+
function_path: string
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- id: validate
|
|
23
|
+
description: |
|
|
24
|
+
Validate slug. Confirm not registered in .config/functions.yaml and no
|
|
25
|
+
top-level folder collision. Resolve ${inputs.description} and
|
|
26
|
+
${inputs.has_expert} (prompt if absent).
|
|
27
|
+
|
|
28
|
+
- id: proliferation_reminder
|
|
29
|
+
description: |
|
|
30
|
+
Soft prompt: "Will you have 2-3 agents in this function in ~90 days?"
|
|
31
|
+
Require keypress to continue. The script's own prompt counts as the
|
|
32
|
+
confirmation gate — chief-of-staff just surfaces what the script will do.
|
|
33
|
+
approval: session
|
|
34
|
+
|
|
35
|
+
- id: execute
|
|
36
|
+
tool: bash
|
|
37
|
+
args:
|
|
38
|
+
command: bash scripts/create-function.sh ${inputs.function} --description "${inputs.description}" ${inputs.has_expert:+--with-expert}
|
|
39
|
+
description: Run the backing script.
|
|
40
|
+
|
|
41
|
+
- id: report
|
|
42
|
+
description: |
|
|
43
|
+
Print scaffolded paths. Surface post-creation reminders the script
|
|
44
|
+
prints: create #<slug> Slack channel, add SLACK_HITL_CHANNEL_<SLUG> to
|
|
45
|
+
.env, fill EXPERT.md stub if applicable, add the first agent via
|
|
46
|
+
new-agent.sh.
|
|
47
|
+
|
|
48
|
+
approval_channel: session
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
plan: create-project
|
|
2
|
+
description: |
|
|
3
|
+
Scaffold a new project at projects/<slug>/ and optionally instance a list of
|
|
4
|
+
agents into it. If no agent list is provided, prompt the user with a
|
|
5
|
+
multi-select of all globally-discovered agents.
|
|
6
|
+
|
|
7
|
+
inputs:
|
|
8
|
+
project:
|
|
9
|
+
required: true
|
|
10
|
+
description: Project slug (lowercase, kebab-case, starts with letter, must not collide live or in _archive).
|
|
11
|
+
agents:
|
|
12
|
+
required: false
|
|
13
|
+
description: List of <function>/<agent> to instance immediately. If omitted, the cross-link prompt runs.
|
|
14
|
+
|
|
15
|
+
outputs:
|
|
16
|
+
project_path: string
|
|
17
|
+
instance_paths: list
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- id: validate
|
|
21
|
+
description: |
|
|
22
|
+
Confirm cwd is repo root. Validate ${inputs.project} slug. Confirm
|
|
23
|
+
projects/${inputs.project}/ does not exist live or in _archive/projects/.
|
|
24
|
+
If ${inputs.agents} provided, validate every <function>/<agent>/ exists globally.
|
|
25
|
+
If any are missing, abort and tell the user to run create-agent first.
|
|
26
|
+
|
|
27
|
+
- id: scaffold_project
|
|
28
|
+
tool: bash
|
|
29
|
+
args:
|
|
30
|
+
command: bash scripts/new-project.sh ${inputs.project}
|
|
31
|
+
description: Create projects/<project>/ with template files.
|
|
32
|
+
|
|
33
|
+
- id: resolve_agents
|
|
34
|
+
description: |
|
|
35
|
+
Branch on whether ${inputs.agents} was provided.
|
|
36
|
+
- If provided: use the list directly.
|
|
37
|
+
- If omitted: discover all <function>/<agent>/ folders containing agent.md
|
|
38
|
+
across functions registered in .config/functions.yaml. If empty, skip
|
|
39
|
+
instancing and report "no agents exist yet — run create-agent first."
|
|
40
|
+
Otherwise present a multi-select via AskUserQuestion with options
|
|
41
|
+
[All agents, ...each discovered <function>/<agent>, None — leave project bare]
|
|
42
|
+
and multiSelect: true. Resolve "All agents" to the full list,
|
|
43
|
+
"None" or empty to an empty list.
|
|
44
|
+
|
|
45
|
+
- id: instance_agents
|
|
46
|
+
tool: bash
|
|
47
|
+
args:
|
|
48
|
+
command: |
|
|
49
|
+
for entry in ${resolved_agents}; do
|
|
50
|
+
fn="${entry%/*}"; agent="${entry#*/}"
|
|
51
|
+
bash scripts/new-agent-instance.sh ${inputs.project} "$fn" "$agent"
|
|
52
|
+
done
|
|
53
|
+
description: |
|
|
54
|
+
For each resolved agent, run new-agent-instance.sh. Script prompts
|
|
55
|
+
interactively for tool bindings declared in the agent's
|
|
56
|
+
## Tools and bindings section. Skip with Enter or "skip" to leave
|
|
57
|
+
placeholders. After each instance, append a line to
|
|
58
|
+
projects/${inputs.project}/CLAUDE.md under ## Active agent instances.
|
|
59
|
+
|
|
60
|
+
- id: report
|
|
61
|
+
description: |
|
|
62
|
+
Print all paths created — project root + every instance — and surface
|
|
63
|
+
the instance count.
|
|
64
|
+
|
|
65
|
+
approval_channel: session
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
plan: remove-agent-from-project
|
|
2
|
+
description: |
|
|
3
|
+
Remove an agent instance from a project. Always archives (no hard delete).
|
|
4
|
+
For permanent deletion, the user can manually rm -rf the archived copy.
|
|
5
|
+
Run history and project-scoped lessons live inside the instance — deletion
|
|
6
|
+
destroys evidence the dreamer needs.
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
project:
|
|
10
|
+
required: true
|
|
11
|
+
description: Project slug.
|
|
12
|
+
function:
|
|
13
|
+
required: true
|
|
14
|
+
description: Function slug.
|
|
15
|
+
agent:
|
|
16
|
+
required: true
|
|
17
|
+
description: Agent slug.
|
|
18
|
+
|
|
19
|
+
outputs:
|
|
20
|
+
archive_path: string
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- id: validate
|
|
24
|
+
description: |
|
|
25
|
+
Confirm instance exists at
|
|
26
|
+
${inputs.function}/${inputs.agent}/projects/${inputs.project}/.
|
|
27
|
+
|
|
28
|
+
- id: confirmation
|
|
29
|
+
description: |
|
|
30
|
+
Show the planned move and CLAUDE.md update:
|
|
31
|
+
|
|
32
|
+
Will move:
|
|
33
|
+
${inputs.function}/${inputs.agent}/projects/${inputs.project}/ → _archive/${inputs.function}/${inputs.agent}/projects/${inputs.project}-<date>/
|
|
34
|
+
And update:
|
|
35
|
+
projects/${inputs.project}/CLAUDE.md (remove instance from ## Active agent instances)
|
|
36
|
+
Proceed?
|
|
37
|
+
|
|
38
|
+
Wait for "proceed", "yes", "y". Abort cleanly if denied.
|
|
39
|
+
approval: session
|
|
40
|
+
|
|
41
|
+
- id: execute
|
|
42
|
+
tool: bash
|
|
43
|
+
args:
|
|
44
|
+
command: bash scripts/remove-agent-from-project.sh ${inputs.project} ${inputs.function} ${inputs.agent}
|
|
45
|
+
description: Run the backing script.
|
|
46
|
+
|
|
47
|
+
- id: report
|
|
48
|
+
description: Print the archive path and the operation log entry.
|
|
49
|
+
|
|
50
|
+
approval_channel: session
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
plan: rename-project
|
|
2
|
+
description: |
|
|
3
|
+
Rename a project everywhere it appears: project root, every agent instance
|
|
4
|
+
folder, and content references in CLAUDE.md / GUIDANCE.md / config files /
|
|
5
|
+
asset-references. Does NOT auto-update lesson, run, or feedback bodies —
|
|
6
|
+
those are historical evidence reviewed manually.
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
old:
|
|
10
|
+
required: true
|
|
11
|
+
description: Current project slug (must exist at projects/<old>/).
|
|
12
|
+
new:
|
|
13
|
+
required: true
|
|
14
|
+
description: New slug (lowercase, kebab-case, must not exist live or in _archive).
|
|
15
|
+
|
|
16
|
+
outputs:
|
|
17
|
+
paths_renamed: list
|
|
18
|
+
unauto_updated_files: list
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- id: validate
|
|
22
|
+
description: |
|
|
23
|
+
Confirm projects/${inputs.old}/ exists. Validate ${inputs.new} slug.
|
|
24
|
+
Confirm no collision live or archived. Find all instances at
|
|
25
|
+
<function>/<agent>/projects/${inputs.old}/ across the repo.
|
|
26
|
+
|
|
27
|
+
- id: confirmation
|
|
28
|
+
description: |
|
|
29
|
+
Show full list of folder moves AND in-file content updates:
|
|
30
|
+
|
|
31
|
+
Will rename folders:
|
|
32
|
+
projects/${inputs.old}/ → projects/${inputs.new}/
|
|
33
|
+
<function>/<agent>/projects/${inputs.old}/ → <function>/<agent>/projects/${inputs.new}/
|
|
34
|
+
|
|
35
|
+
Will replace project name in:
|
|
36
|
+
projects/${inputs.new}/CLAUDE.md
|
|
37
|
+
projects/${inputs.new}/GUIDANCE.md
|
|
38
|
+
<function>/*/projects/${inputs.new}/config/default.yaml (project: ${inputs.new})
|
|
39
|
+
<function>/*/projects/${inputs.new}/asset-references.md
|
|
40
|
+
|
|
41
|
+
WILL NOT auto-update:
|
|
42
|
+
- lesson frontmatter project: fields (review manually)
|
|
43
|
+
- run/feedback frontmatter project: fields
|
|
44
|
+
- text references inside lesson, run, or feedback bodies
|
|
45
|
+
|
|
46
|
+
Proceed?
|
|
47
|
+
|
|
48
|
+
Wait for "proceed", "yes", "y". Abort cleanly if denied.
|
|
49
|
+
approval: session
|
|
50
|
+
|
|
51
|
+
- id: execute
|
|
52
|
+
tool: bash
|
|
53
|
+
args:
|
|
54
|
+
command: bash scripts/rename-project.sh ${inputs.old} ${inputs.new}
|
|
55
|
+
description: Run the backing script.
|
|
56
|
+
|
|
57
|
+
- id: report
|
|
58
|
+
description: |
|
|
59
|
+
Print renamed paths. Surface the list of files that mention ${inputs.old}
|
|
60
|
+
in their content but were NOT auto-updated, for manual review.
|
|
61
|
+
|
|
62
|
+
approval_channel: session
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
plan: unarchive-project
|
|
2
|
+
description: |
|
|
3
|
+
Restore an archived project from _archive/ back to the live tree.
|
|
4
|
+
|
|
5
|
+
inputs:
|
|
6
|
+
project:
|
|
7
|
+
required: true
|
|
8
|
+
description: Project slug to restore.
|
|
9
|
+
archive_suffix:
|
|
10
|
+
required: false
|
|
11
|
+
description: Date/disambiguator suffix when multiple archives exist (e.g., 2026-04-26-2).
|
|
12
|
+
|
|
13
|
+
outputs:
|
|
14
|
+
restored_paths: list
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- id: locate
|
|
18
|
+
description: |
|
|
19
|
+
Search _archive/projects/${inputs.project}-* for matches. If multiple,
|
|
20
|
+
list them and ask which to restore (use ${inputs.archive_suffix} if
|
|
21
|
+
provided to disambiguate).
|
|
22
|
+
|
|
23
|
+
- id: validate
|
|
24
|
+
description: |
|
|
25
|
+
Confirm no naming collision with currently-live projects/instances.
|
|
26
|
+
|
|
27
|
+
- id: confirmation
|
|
28
|
+
description: |
|
|
29
|
+
Show what will move and where. Wait for "proceed", "yes", "y".
|
|
30
|
+
approval: session
|
|
31
|
+
|
|
32
|
+
- id: execute
|
|
33
|
+
tool: bash
|
|
34
|
+
args:
|
|
35
|
+
command: bash scripts/unarchive-project.sh ${inputs.project} ${inputs.archive_suffix}
|
|
36
|
+
description: Run the backing script.
|
|
37
|
+
|
|
38
|
+
- id: report
|
|
39
|
+
description: Print restored paths and operation log entry.
|
|
40
|
+
|
|
41
|
+
approval_channel: session
|
|
File without changes
|