diff --git a/.osv-scanner.toml b/.osv-scanner.toml index 7edf77b..1917db8 100644 --- a/.osv-scanner.toml +++ b/.osv-scanner.toml @@ -29,3 +29,7 @@ reason = "go.etcd.io/bbolt v1.4.3 dep, no fix available" [[IgnoredVulns]] id = "GHSA-xmrv-pmrh-hhx2" reason = "aws-sdk-go-v2 s3/eventstream, upgrade pending" + +[[IgnoredVulns]] +id = "GO-2026-5932" +reason = "golang.org/x/crypto/openpgp unmaintained, no fix will ship — advisory deprecates the package" diff --git a/CHANGELOG.md b/CHANGELOG.md index 6793d11..f31e73e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ Please choose versions by [Semantic Versioning](http://semver.org/). * MINOR version when you add functionality in a backwards-compatible manner, and * PATCH version when you make backwards-compatible bug fixes. +## Unreleased +- suppress no-fix advisory GO-2026-5932 (golang.org/x/crypto/openpgp unmaintained) in govulncheck + osv-scanner so precommit is green +- launch-agent: flexible repo naming — suggest-with-override (`-agent` / `github--agent` for GitHub-triggered, freely overridable) instead of forcing `bborbe/agent-`; aligns with the post-split fleet convention (github-pr-review-agent, github-releaser-agent) + ## v0.77.0 - helm: when `executor.kafkaUser.enabled`, pass the executor's own client-cert + CA secret names to the executor as `JOB_KAFKA_CLIENT_CERT_SECRET` / `JOB_KAFKA_CA_CERT_SECRET` env, so it mounts mTLS Kafka certs into the per-task agent Jobs it spawns (agent-task-executor ≥ v0.4.0). Fixes spawned agent Jobs (pr-reviewer, github-releaser) crashing on `open /client-cert/file: no such file` against mTLS Kafka. Default off (`kafkaUser` disabled) → no env, spawned Jobs unchanged. Chart 0.4.1 → 0.5.0. diff --git a/Makefile b/Makefile index a1f8379..fe45a1e 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ vet: .PHONY: vulncheck vulncheck: @go run golang.org/x/vuln/cmd/govulncheck@$(GOVULNCHECK_VERSION) -format json $(shell go list -mod=mod ./... | grep -v /vendor/) 2>&1 | \ - jq -e 'select(.finding != null and .finding.osv != "GO-2026-4923" and .finding.osv != "GO-2026-4514" and .finding.osv != "GO-2022-0470" and .finding.osv != "GO-2026-4772" and .finding.osv != "GO-2026-4771")' > /dev/null 2>&1 && \ + jq -e 'select(.finding != null and .finding.osv != "GO-2026-4923" and .finding.osv != "GO-2026-4514" and .finding.osv != "GO-2022-0470" and .finding.osv != "GO-2026-4772" and .finding.osv != "GO-2026-4771" and .finding.osv != "GO-2026-5932")' > /dev/null 2>&1 && \ { echo "Unexpected vulnerabilities found"; go run golang.org/x/vuln/cmd/govulncheck@$(GOVULNCHECK_VERSION) $(shell go list -mod=mod ./... | grep -v /vendor/); exit 1; } || \ echo "No unignored vulnerabilities found" diff --git a/commands/launch-agent.md b/commands/launch-agent.md index bdca2e0..fae1846 100644 --- a/commands/launch-agent.md +++ b/commands/launch-agent.md @@ -1,6 +1,6 @@ --- description: Interview-driven scaffolding for a new bborbe agent — clones a template repo, generates Config CRD + vault page + first scenario -argument-hint: "[agent name] [--shape claude|code|gemini|pi]" +argument-hint: "[role or repo-name] [--shape claude|code|gemini|pi]" allowed-tools: [Task, Read, Write, Edit, Bash, AskUserQuestion, mcp__semantic-search__search_related] --- @@ -10,7 +10,7 @@ Scaffold a new bborbe agent end-to-end via interview + template clone. Delegate 1. **Parse arguments** from `$ARGUMENTS`: - - First positional token (if any): proposed agent name (will be normalized by the skill) + - First positional token (if any): proposed role or repo-name seed. The skill suggests `-agent` (or `github--agent` for GitHub-triggered) and lets the user overwrite with any valid repo name — no forced `agent-` prefix - `--shape `: explicit shape pick (skip the shape-picker subagent) - No args: skill runs the full interview from scratch @@ -22,7 +22,7 @@ Scaffold a new bborbe agent end-to-end via interview + template clone. Delegate - Read references (shapes.md, interview.md, templates) - Run [[Agent Design Guide]] 45-Q interview (conversational, AskUserQuestion for enumerable choices) - Recommend shape via `agent-shape-picker` subagent if `--shape` not provided - - `gh repo create bborbe/agent- --public --template bborbe/agent-` + - `gh repo create bborbe/ --public --template bborbe/agent-` - Clone, rename Go module path + package names + Config kind across files - Generate `Config.yaml` (CRD instance), `agent//.claude/CLAUDE.md`, `README.md` adapted - Write vault artifacts: `50 Knowledge Base/ Agent.md`, `23 Goals/Build Agent.md`, `24 Tasks/Bootstrap Agent.md`, scenario stub @@ -32,7 +32,7 @@ Scaffold a new bborbe agent end-to-end via interview + template clone. Delegate - Skill invoked successfully - New repo created on GitHub via `--template` flag -- Local clone exists at `~/Documents/workspaces/agent-/` +- Local clone exists at `~/Documents/workspaces//` - Vault artifacts created in the configured vault (Personal) - Deploy checklist printed diff --git a/skills/launch-agent/SKILL.md b/skills/launch-agent/SKILL.md index e6bd74f..373431f 100644 --- a/skills/launch-agent/SKILL.md +++ b/skills/launch-agent/SKILL.md @@ -38,17 +38,21 @@ Walk through `references/interview.md` conversationally. Use `AskUserQuestion` f - Part 7 (Safety): consent gates, error handling per class, security boundaries - Part 8 (Acceptance): per-phase acceptance criteria, overall DoD -After Part 2 (name picked), normalize the agent name: - -1. Lowercase, strip leading/trailing whitespace -2. Replace runs of `[^a-z0-9-]` with single `-` -3. Strip leading/trailing `-` -4. Drop any leading `agent-` prefix (the new repo will be `bborbe/agent-`) -5. **Reject** if final name contains any of: `$`, backtick, `;`, `|`, `<`, `>`, `&`, `(`, `)`, `\`, `..`, `/` — these can't appear in valid GitHub repo names and would be dangerous in shell interpolation later -6. **Reject** if name is empty after normalization, starts with `.`, or matches `agent` exactly (reserved for the SDK repo) -7. **Reject** if length > 50 chars (GitHub repo name limit + safety margin) - -On rejection, surface the issue to the user via `AskUserQuestion` and ask for a different name. +After Part 2 (role captured), derive the **repo name** via suggest-with-override. The repo name IS the GitHub repo basename (`bborbe/`) — do NOT force an `agent-` prefix; the fleet convention is a `-agent` SUFFIX (`github-pr-review-agent`, `github-releaser-agent`). + +1. **Normalize the role** the user gave into a kebab slug: lowercase, strip leading/trailing whitespace, replace runs of `[^a-z0-9-]` with a single `-`, strip leading/trailing `-`. Call this `` (e.g. `dark factory` → `dark-factory`). +2. **Compute the suggested repo name** `` — robustly, so re-running on an already-suffixed name is idempotent: + - `` = `` with a single trailing `-agent` removed if present (so `pr-review` and `pr-review-agent` both give core `pr-review` — no double suffix). + - `` = `-agent`. + - Do NOT auto-prepend `github-`; if the user wants the `github--agent` form (valid — see note below), they add it via the override in step 3. This keeps the suggestion a single, predictable shape. +3. **Offer it via `AskUserQuestion`**, `` as the recommended option, plus an "Other" free-text so the user can **overwrite with any repo name they want** (e.g. `github-dark-factory-agent`, or a bare `foo`). The user's choice — suggested or override — becomes ``, used verbatim as the repo basename everywhere below. +4. **Validate ``** (the final chosen value): + - **Reject** if it contains any of: `$`, backtick, `;`, `|`, `<`, `>`, `&`, `(`, `)`, `\`, `..`, `/` — invalid in GitHub repo names and unsafe in later shell interpolation. + - **Reject** if empty, starts with `.`, or equals `agent` exactly (reserved for the SDK repo). + - **Reject** if length > 50 chars (GitHub repo name limit + safety margin). + - **Do NOT reject a `github-` prefix.** GitHub reserves `github` only for org/user *account* names, not repo names — `bborbe/github-pr-review-agent` and `bborbe/github-releaser-agent` already exist. `github--agent` is a valid, in-use repo name and the operator may choose it via override. + +On rejection, surface the issue via `AskUserQuestion` and re-offer (suggested name + Other). **Gate 1**: confirm captured intent with the user before proceeding to shape pick: > "Captured: . Proceed to shape recommendation?" @@ -77,7 +81,7 @@ Present to user via `AskUserQuestion`: Use `gh repo create` with the `--template` flag: ```bash -gh repo create bborbe/agent- --public \ +gh repo create bborbe/ --public \ --template bborbe/agent- \ --description "" ``` @@ -85,8 +89,8 @@ gh repo create bborbe/agent- --public \ Then clone: ```bash -git clone git@github.com:bborbe/agent-.git ~/Documents/workspaces/agent- -cd ~/Documents/workspaces/agent- +git clone git@github.com:bborbe/.git ~/Documents/workspaces/ +cd ~/Documents/workspaces/ ``` ### Phase 3 — gh API error handling @@ -99,7 +103,7 @@ cd ~/Documents/workspaces/agent- | `HTTP 403: rate limit exceeded` | gh API quota burned | HALT — surface the reset window from `gh api rate_limit`. Recovery: wait for window reset, re-invoke `/launch-agent`. | | `HTTP 401: Bad credentials` | `gh auth status` is bad | HALT — surface "run `gh auth login` then re-invoke". | | `HTTP 404` on `--template` source | template repo doesn't exist or isn't flagged `is_template: true` | HALT — surface "verify `gh api repos/bborbe/agent- --jq .is_template` returns true; if not, run `gh api repos/bborbe/agent- --method PATCH --field is_template=true`". | -| `git clone` fails after repo created | SSH key issue / network blip | HALT — `gh repo delete bborbe/agent- --yes` to clean up the empty remote, then user investigates SSH + re-invokes. | +| `git clone` fails after repo created | SSH key issue / network blip | HALT — `gh repo delete bborbe/ --yes` to clean up the empty remote, then user investigates SSH + re-invokes. | Always print the raw `gh` stderr so the user has the actual diagnostic. The table above documents the common cases; novel failures get reported verbatim. @@ -109,16 +113,16 @@ Mechanical renames across the cloned template. **Portable sed**: use `sed -i.bak For files that may not exist in every template (some shapes don't have a `Makefile.precommit`, some don't have a `k8s/` dir), wrap the sed in a `[ -f "" ] &&` existence guard so a missing file is a no-op rather than a silent failure. -1. **`go.mod`**: change `module github.com/bborbe/agent-` → `module github.com/bborbe/agent-` -2. **`.go` files**: `find . -name '*.go' -exec sed -i.bak 's|github.com/bborbe/agent-|github.com/bborbe/agent-|g' {} +` then `find . -name '*.go.bak' -delete` -3. **`Makefile`**: `[ -f Makefile ] && sed -i.bak 's|SERVICE = agent-|SERVICE = agent-|' Makefile && rm -f Makefile.bak` -4. **`Makefile.precommit`**: `[ -f Makefile.precommit ] && sed -i.bak 's|github.com/bborbe/agent-|github.com/bborbe/agent-|' Makefile.precommit && rm -f Makefile.precommit.bak` -5. **`example.env`**: `[ -f example.env ] && sed -i.bak 's|bborbe/agent-|bborbe/agent-|' example.env && rm -f example.env.bak` -6. **k8s/ YAMLs** (skip if `k8s/` doesn't exist): rename files + resources to `agent-`: - - `git mv k8s/agent-.yaml k8s/agent-.yaml` - - `git mv k8s/agent--secret.yaml k8s/agent--secret.yaml` - - `git mv k8s/agent--pvc.yaml k8s/agent--pvc.yaml` (if shape has one) - - `sed -i.bak 's|agent-|agent-|g' k8s/*.yaml && rm -f k8s/*.bak` +1. **`go.mod`**: change `module github.com/bborbe/agent-` → `module github.com/bborbe/` +2. **`.go` files**: `find . -name '*.go' -exec sed -i.bak 's|github.com/bborbe/agent-|github.com/bborbe/|g' {} +` then `find . -name '*.go.bak' -delete` +3. **`Makefile`**: `[ -f Makefile ] && sed -i.bak 's|SERVICE = agent-|SERVICE = |' Makefile && rm -f Makefile.bak` +4. **`Makefile.precommit`**: `[ -f Makefile.precommit ] && sed -i.bak 's|github.com/bborbe/agent-|github.com/bborbe/|' Makefile.precommit && rm -f Makefile.precommit.bak` +5. **`example.env`**: `[ -f example.env ] && sed -i.bak 's|bborbe/agent-|bborbe/|' example.env && rm -f example.env.bak` +6. **k8s/ YAMLs** (skip if `k8s/` doesn't exist): rename files + resources to ``: + - `git mv k8s/agent-.yaml k8s/.yaml` + - `git mv k8s/agent--secret.yaml k8s/-secret.yaml` + - `git mv k8s/agent--pvc.yaml k8s/-pvc.yaml` (if shape has one) + - `sed -i.bak 's|agent-||g' k8s/*.yaml && rm -f k8s/*.bak` 7. **README.md**: rewrite the top section to reflect the new agent's purpose (use captured Part 1 + Part 2 from interview) 8. **CHANGELOG.md**: reset to `# Changelog\n\n## v0.0.0\n\n- Initial scaffold from bborbe/agent- template via /launch-agent on YYYY-MM-DD` 9. **`agent/.claude/CLAUDE.md`** (if shape has one): adapt the per-agent CLAUDE.md to the new agent's domain @@ -129,12 +133,12 @@ Refresh the module graph (in the cloned dir): rm go.sum && go mod tidy ``` -**MANDATORY enforceable check**: invoke the `Task` tool with `subagent_type: 'coding:simple-bash-runner'` to run `cd ~/Documents/workspaces/agent- && make precommit`. This is NOT a documentation suggestion — the skill MUST issue the Task tool call. Without it, the Phase 4 stop-on-failure contract below is unenforceable. +**MANDATORY enforceable check**: invoke the `Task` tool with `subagent_type: 'coding:simple-bash-runner'` to run `cd ~/Documents/workspaces/ && make precommit`. This is NOT a documentation suggestion — the skill MUST issue the Task tool call. Without it, the Phase 4 stop-on-failure contract below is unenforceable. ``` Task( subagent_type: 'coding:simple-bash-runner', - prompt: 'cd ~/Documents/workspaces/agent- && make precommit', + prompt: 'cd ~/Documents/workspaces/ && make precommit', description: 'verify scaffold builds' ) ``` @@ -149,7 +153,7 @@ Parse the Task result: Render `references/config-crd-template.yaml` with the captured values into: ``` -~/Documents/workspaces/agent-/k8s/agent--config.yaml +~/Documents/workspaces//k8s/-config.yaml ``` The Config CRD declares: `assignee`, `image`, `heartbeat`, `taskTypes`, `resources`, `env`, `secretName`, `volumeClaim` (if applicable). Fill from interview answers. @@ -162,8 +166,8 @@ Vault root: `~/Documents/Obsidian/Personal/` (resolve via `vault-cli config list 1. **Knowledge page**: render `references/vault-page-template.md` → `50 Knowledge Base/ Agent.md` 2. **Goal**: render `references/goal-template.md` → `23 Goals/Build Agent.md` -3. **First scenario**: render `references/scenario-template.md` → `~/Documents/workspaces/agent-/scenarios/001-.md` -4. **NEXT-DIRECTIONS**: render `references/next-directions-template.md` → `~/Documents/workspaces/agent-/NEXT-DIRECTIONS.md` capturing v1/v2/v3 deferrals surfaced during the interview +3. **First scenario**: render `references/scenario-template.md` → `~/Documents/workspaces//scenarios/001-.md` +4. **NEXT-DIRECTIONS**: render `references/next-directions-template.md` → `~/Documents/workspaces//NEXT-DIRECTIONS.md` capturing v1/v2/v3 deferrals surfaced during the interview 5. **Agent Hub update**: add row to the "Planned Agents" table in `50 Knowledge Base/Agent Hub.md` (or move existing row to "Production Agents" if the agent was already on the planned list) ## Phase 7 — Commit + push initial state @@ -171,7 +175,7 @@ Vault root: `~/Documents/Obsidian/Personal/` (resolve via `vault-cli config list In the new repo: ```bash -cd ~/Documents/workspaces/agent- +cd ~/Documents/workspaces/ git add -A git commit -m "scaffold via /launch-agent (template: agent-, $(date +%Y-%m-%d))" git push @@ -190,7 +194,7 @@ Pattern: `<[A-Z][A-Za-z0-9_+-]*>` — uppercase-leading (matches all our placeho ```bash # Use $HOME (not quoted ~) — tilde inside quotes is NOT shell-expanded. grep -rln --include='*.md' --include='*.yaml' --include='*.yml' -E '<[A-Z][A-Za-z0-9_+-]*>' \ - $HOME/Documents/workspaces/agent-/ \ + $HOME/Documents/workspaces// \ "$HOME/Documents/Obsidian/Personal/50 Knowledge Base/ Agent.md" \ "$HOME/Documents/Obsidian/Personal/23 Goals/Build Agent.md" ``` @@ -200,16 +204,16 @@ If ANY hit found: HALT with the file paths + offending tokens listed. DO NOT pri **Only after the leak scan returns empty**, output the numbered checklist (don't execute, just print): ``` -🟢 Agent scaffold complete: bborbe/agent- - Repo: https://github.com/bborbe/agent- +🟢 Agent scaffold complete: bborbe/ + Repo: https://github.com/bborbe/ Goal: obsidian://open?vault=Personal&file=23%20Goals%2FBuild%20%20Agent Next steps (operator decisions): -1. Review the generated Config CRD: ~/Documents/workspaces/agent-/k8s/agent--config.yaml +1. Review the generated Config CRD: ~/Documents/workspaces//k8s/-config.yaml 2. Implement domain logic in pkg/factory/factory.go + pkg/prompts/ (template provides scaffolding only) 3. Run `make precommit` locally to verify 4. Build + deploy: `BRANCH=dev make buca` -5. Apply Config CRD: `kubectlquant -n dev apply -f k8s/agent--config.yaml` +5. Apply Config CRD: `kubectlquant -n dev apply -f k8s/-config.yaml` 6. Run the first scenario: `dark-factory:run-scenario scenarios/001-.md` 7. If green, promote to prod: `BRANCH=prod make buca` + apply Config CRD in prod namespace ``` @@ -247,15 +251,15 @@ When Phase 4's `make precommit` fails (lint error, test failure, security findin ```bash # Full rollback (run these in order — both are irreversible): -rm -rf ~/Documents/workspaces/agent- -gh repo delete bborbe/agent- --yes +rm -rf ~/Documents/workspaces/ +gh repo delete bborbe/ --yes # Vault artifacts were NOT written (Phase 6 is post-Phase-4); nothing to revert there. ``` Then offer the user a choice via `AskUserQuestion`: 1. **Investigate first** (recommended for repeated failures — may be a template bug) - - User runs `cd ~/Documents/workspaces/agent- && git diff` to see the customize changes + - User runs `cd ~/Documents/workspaces/ && git diff` to see the customize changes - User identifies the over-matching sed pattern OR template issue - Manually revert in the affected file, re-run `make precommit`, continue manually from Phase 5 2. **Rollback + retry** (recommended for typos / wrong shape pick — quickly recoverable) diff --git a/skills/launch-agent/references/config-crd-template.yaml b/skills/launch-agent/references/config-crd-template.yaml index 8694d56..7a815ca 100644 --- a/skills/launch-agent/references/config-crd-template.yaml +++ b/skills/launch-agent/references/config-crd-template.yaml @@ -1,5 +1,5 @@ # Config CRD instance for a new agent. Apply with: -# kubectlquant -n apply -f k8s/agent--config.yaml +# kubectlquant -n apply -f k8s/-config.yaml # # Renders from `/launch-agent` interview answers. Placeholders are — replace # during scaffolding; do NOT leave any in the final output. @@ -11,7 +11,7 @@ metadata: namespace: # dev | prod (typically rolled out to dev first) spec: assignee: # task frontmatter `assignee: ` routes here - image: docker.quant.benjamin-borbe.de:443/agent-: + image: docker.quant.benjamin-borbe.de:443/: heartbeat: 15m # re-spawn interval for in_progress tasks; raise for long-running phases # task_type values this agent handles (from interview Part 4) @@ -32,8 +32,8 @@ spec: # : "" # k8s Secret containing teamvault-resolved creds (from interview Part 7.3) - secretName: agent- # see k8s/agent--secret.yaml for the teamvault references + secretName: # see k8s/-secret.yaml for the teamvault references # PVC for persistent per-agent state (Claude OAuth, memory, etc.). Omit if stateless. - volumeClaim: # e.g. agent--claude-oauth; remove block if none + volumeClaim: # e.g. -claude-oauth; remove block if none volumeMountPath: /home/claude/.claude diff --git a/skills/launch-agent/references/goal-template.md b/skills/launch-agent/references/goal-template.md index f05df1b..39d7158 100644 --- a/skills/launch-agent/references/goal-template.md +++ b/skills/launch-agent/references/goal-template.md @@ -24,7 +24,7 @@ Tags: [[Goal]] [[Agent Hub]] # Impact -**Approach**: scaffold `bborbe/agent-` from the `` template via `/launch-agent` (interview captured ), implement -specific domain logic in `pkg/factory/factory.go` + `pkg/prompts/`, deploy to dev → smoke → prod. +**Approach**: scaffold `bborbe/` from the `` template via `/launch-agent` (interview captured ), implement -specific domain logic in `pkg/factory/factory.go` + `pkg/prompts/`, deploy to dev → smoke → prod. - **Strategic**: - **Theme alignment**: Direct enabler of [[Leverage Autonomous Agents]] — agent #N in the production catalog. @@ -39,7 +39,7 @@ Tags: [[Goal]] [[Agent Hub]] # Success Criteria -- [ ] `bborbe/agent-` exists, builds green on CI +- [ ] `bborbe/` exists, builds green on CI - [ ] Domain logic implemented in `pkg/factory/factory.go` + `pkg/prompts/.md` - [ ] Deployed to dev; first task processed end-to-end (scenario 001 green) - [ ] Deployed to prod; verified for 1 week diff --git a/skills/launch-agent/references/interview.md b/skills/launch-agent/references/interview.md index fbec388..96287e3 100644 --- a/skills/launch-agent/references/interview.md +++ b/skills/launch-agent/references/interview.md @@ -15,17 +15,17 @@ Conversational walk through the [[Agent Design Guide]]'s 8 parts. Use `AskUserQu ## Part 2 — Identity (5 Q) -1. **Name** (open): Proposed agent name? (kebab-case; will become `bborbe/agent-` repo) -2. **Normalize the name** (silent): strip spaces, lowercase, replace non-alphanumeric with `-`; drop any leading `agent-` prefix. +1. **Role** (open): What does the agent do? (short kebab-able label, e.g. `dark-factory`, `pr-review`) +2. **Repo name** (suggest-with-override, per SKILL.md § naming): normalize the role to a slug, strip any trailing `-agent`, **suggest** `-agent`, and let the user overwrite with any valid repo name (e.g. `github-dark-factory-agent` — `github-` repo prefix is valid). The chosen value is `` = `bborbe/`. No forced `agent-` prefix, no double `-agent`. 3. **Purpose statement** (open): 1-2 sentence purpose for the README and Config CRD description. 4. **Runtime tier** (`AskUserQuestion`): Which provider/cost tier? - Anthropic Max subscription (Claude Code, included quota) - Sonnet API (pay-per-token) - Local Qwen (on-cluster, no external API) - MiniMax (cheap, Tier-D quality) -5. **Domain & repo** (silent): always `bborbe/agent-`; document where the new repo lives. +5. **Domain & repo** (silent): `bborbe/` (the chosen basename); document where the new repo lives. -→ Confirm: "Captured: agent- on . Proceed?" +→ Confirm: "Captured: on . Proceed?" ## Part 3 — Integration (5 Q) diff --git a/skills/launch-agent/references/next-directions-template.md b/skills/launch-agent/references/next-directions-template.md index 36e9b45..611df30 100644 --- a/skills/launch-agent/references/next-directions-template.md +++ b/skills/launch-agent/references/next-directions-template.md @@ -9,7 +9,7 @@ Placeholders: `` — replace during scaffolding; remove unused --- ```markdown -# NEXT-DIRECTIONS — agent- +# NEXT-DIRECTIONS — Deferred-not-cut work captured during `/launch-agent` interview on . Each entry has a clear mechanism so future-you (or a sub-agent) can pick it up without re-deriving the context. diff --git a/skills/launch-agent/references/scenario-template.md b/skills/launch-agent/references/scenario-template.md index 2964d12..cb17bb3 100644 --- a/skills/launch-agent/references/scenario-template.md +++ b/skills/launch-agent/references/scenario-template.md @@ -12,7 +12,7 @@ Placeholders: `` — replace during scaffolding. **Purpose**: prove the agent works end-to-end on a happy-path input. Run before any deploy; run again after any non-trivial change. **Setup**: -- Agent `bborbe/agent-` deployed to (dev typically) +- Agent `bborbe/` deployed to (dev typically) - Config CRD applied: `kubectlquant -n get config.agent.benjamin-borbe.de ` shows it - Producer ready to emit a task (or operator creates one manually via vault edit) @@ -42,7 +42,7 @@ Placeholders: `` — replace during scaffolding. 3. **Observe executor spawn**: ```bash - kubectlquant -n get pods | grep "agent--" + kubectlquant -n get pods | grep "-" ``` Expected: a Job pod appears within 30s of the controller publish. diff --git a/skills/launch-agent/references/vault-page-template.md b/skills/launch-agent/references/vault-page-template.md index bd4f383..79fa180 100644 --- a/skills/launch-agent/references/vault-page-template.md +++ b/skills/launch-agent/references/vault-page-template.md @@ -66,8 +66,8 @@ Tags: [[AI Agent]] [[Agent Page Writing Guide]] [[Autonomous Agent Workflow]] ## Code -- **Repo**: [bborbe/agent-](https://github.com/bborbe/agent-) -- **Source path**: `~/Documents/workspaces/agent-/` +- **Repo**: [bborbe/](https://github.com/bborbe/) +- **Source path**: `~/Documents/workspaces//` - **Template**: scaffolded from `bborbe/agent-` via `/launch-agent` on - **Deploy**: `BRANCH= make buca` from a clean deployment worktree @@ -84,7 +84,7 @@ Tags: [[AI Agent]] [[Agent Page Writing Guide]] [[Autonomous Agent Workflow]] ## NEXT-DIRECTIONS -See `~/Documents/workspaces/agent-/NEXT-DIRECTIONS.md` for v1/v2/v3 deferred upgrades captured during the interview. +See `~/Documents/workspaces//NEXT-DIRECTIONS.md` for v1/v2/v3 deferred upgrades captured during the interview. ## Related