9.0 KiB
name, description, triggers, role
| name | description | triggers | role | ||||
|---|---|---|---|---|---|---|---|
| project-kickoff | Use ONLY when the user asks about project setup, kickoff, or project initialization ("kickoff", "project setup", "项目初始化", "项目配置"). Provides guidance on the octopus project kickoff workflow: checking readiness, running /kickoff or octopus kickoff, configuring codegraph, and understanding project scaffolding. Do not use for application-level configuration — this skill covers the octopus project lifecycle, not user application code. |
|
Producer |
Core 中立版(Increment 6a 改写,原 deferHard verbatimDir)。机制、结构与 frontmatter 保持;实例术语(工具名、路径、工单号)按
core/adapters/TERMINOLOGY.md绑定到具体实例。
Project Kickoff
1. Overview
Project kickoff is the octopus project initialization workflow that gets a project from zero to fully configured in one command. It covers readiness detection → setup → scaffold → config → codegraph init → skills overlay pull, producing a project that is ready for the full SDLC pipeline without manual configuration steps.
2. When This Skill Activates
This skill activates when the user's text matches any of the trigger keywords:
kickoff— asking about the/kickoffcommand or the kickoff workflowproject setup— asking how to set up a project in octopus项目初始化/项目配置— asking how to initialize or configure an octopus project (Chinese)
Generic "setup"/"init"/"配置" mentions are deliberately NOT triggers ([org-internal #4525]): they collide with everyday configuration talk, and the hard skill gate folds the previous assistant turn into its match text on approval turns — a passing "或配置x: false" in a reply would re-fire the gate every turn. /init note: /init generates AGENTS.md via LLM; kickoff uses the managed template from octopus setup — the Builder distinguishes based on context.
Typical user intents include: encountering a readiness prompt at session start, wondering how to initialize a project, or wanting to understand the kickoff workflow steps.
3. Prerequisites
Before kickoff can run:
codegraphCLI must be installed and on$PATH(covered by thecodegraph-setupskill)- Global octopus config (
<config-home>/octopus/octopus.jsonc) must be merged and valid - The project root must be identified (the directory octopus is running in)
CI Readiness
After kickoff completes, check for CI configuration:
ls .gitea/workflows/ .github/workflows/ 2>/dev/null || echo "[GAP: no CI workflows]"
If no workflows exist, recommend creating .gitea/workflows/ci.yml (this repo
uses Gitea Actions) — or .github/workflows/ci.yml for a GitHub-hosted project
— with at minimum: typecheck, lint, and test gates. Without CI, every merge is a
manual gate — type errors, lint regressions, and test failures can land on
main and go undetected until the next local checkout.
4. Workflow
The kickoff workflow runs in four automated steps:
- Check readiness — Determine if the project needs setup. Run
checkReadinessWithGitea()oroctopus kickoff --check-onlyto inspect the current state. - Run kickoff — Execute
/kickofffrom the TUI oroctopus kickofffrom the terminal. - What happens — A Phase 0 gate, then five sequential phases:
- Phase 0 — Gitea auth check: derives the
giteablock from the git remote origin (persisting missing fields), then verifies the token (GET /user) and runs the auth wizard on failure; never aborts kickoff - [1/5] Setup — Creates project directories and writes
AGENTS.mdfrom the managed template - [2/5] Scaffold — Creates the
<instance-root>/skeleton (core/skills/directory + defaultoctopus.jsonctemplate if absent); domain skills content arrives via the [5/5] overlay pull - [3/5] Config stub + MCP wiring — Writes the
mcp.codegraphblock intooctopus.jsonc - [4/5] Codegraph init — Initializes and builds the per-project
.codegraph/index - [5/5] Skills remote + overlay pull — Opt-in semantics ([org-internal #4370]); branches by flags when no
overlay.remotesentry is configured:- no flags (interactive run) — safe default: nothing is written; a remediation hint is printed (pass
--skills-remote, or editoverlay.remotes), and the readiness skills item stays not-ready --yes— legacy behavior kept: writes the default skills remote, then pulls domain skills content (octopus skills pullequivalent)--skills-remote <owner/repo>(+ optional--skills-remote-base-url <url>) — writes the specified remote instead (refmain; base URL defaults to<instance-base-url>), then pulls from itoverlay.remotesalready configured — the write is skipped (idempotent; an explicit--skills-remoteis ignored with a warning)
- no flags (interactive run) — safe default: nothing is written; a remediation hint is printed (pass
- Phase 0 — Gitea auth check: derives the
- Post-kickoff verification — Run
octopus kickoff --check-onlyagain. After a--yesor--skills-remoterun it reports all 5 items as ready; after a no-flag interactive run it reports 4 of 5 — the skills item stays not-ready until a remote is configured (--skills-remote,--yes, or a manualoverlay.remotesedit +octopus skills pull).
First-ticket hint ([org-internal #3061])
For a brand-new project still validating its concept, open the FIRST ticket as
Kind/MVP — the interactive no-pipeline mode (decision log + debt register in
the ticket body). It graduates by relabeling to Kind/Feature (analyze-dag
backfill mode picks up the decision log) when a second session, an external
contract, or a second consumer of a shared type appears. Do not route early
concept work into the full pipeline "to be safe" — the pipeline's coordination
machinery is cost, not quality, at zero coordination.
5. Re-kickoff / Idempotency
Re-running kickoff on an already-configured project is safe — every step is idempotent:
- Setup skips existing directories
- Scaffold skips existing files
- Config mutation is a no-op if the
mcp.codegraphblock already matches - Codegraph re-indexes (rebuilds the graph, which is a safe refresh)
- Skills remote ([5/5]) skips the write when
overlay.remotesis already configured
Idempotent silence (REQ-F-005): A fully configured project produces zero startup prompts. Users can run /kickoff or octopus kickoff --check-only at any time for explicit readiness checks without side effects.
6. Troubleshooting
Common issues and their resolutions:
codegraph: command not found— Run thecodegraph-setupskill, or install viabun add -g @colbymchenry/codegraph- Permission denied — Check project directory ownership and write permissions
- Partially complete state — Re-run
/kickoff; idempotent steps will complete the missing parts without affecting already-completed steps - MCP tools not available — Verify
mcp.codegraphexists inoctopus.jsonc; re-runoctopus kickoffto write it
7. Related Commands
/init— GeneratesAGENTS.mdusing an LLM (custom, context-aware); kickoff uses the managed template fromoctopus setupoctopus setup— Creates directories +AGENTS.mdfrom the managed template; kickoff calls this internallyoctopus scaffold— Creates the<instance-root>/skeleton (core/skills/directory + defaultoctopus.jsonctemplate if absent); runoctopus skills pullto fetch domain skills content; kickoff calls this internallyoctopus kickoff --check-only— Readiness check only, no pipeline executionoctopus kickoff --skills-remote <owner/repo>— Explicit opt-in: writes the given skills remote tooverlay.remotes(refmain) and pulls it instead of the defaultoctopus kickoff --skills-remote-base-url <url>— Base URL for--skills-remote(requires it); defaults to<instance-base-url>when omittedoctopus kickoff --yes— Skips the opt-in confirmation and keeps the legacy behavior of writing the default skills remote (Octopus/octopus-skills)codegraph-setupskill — For installing the codegraph CLI and initializing the per-project index
8. Reference
<harness-package>/src/project-kickoff/readiness.ts—checkReadiness()implementation (sync 4-item base)<harness-package>/src/project-kickoff/readiness-gitea.ts—checkReadinessWithGitea()composed 5-item check (adds gitea auth reachable)<harness-package>/src/cli/cmd/kickoff.ts—/kickoffcommand handlercore/skills/codegraph-setup/SKILL.md— CodeGraph setup skill- Project roadmap at
.artifacts/project-kickoff/(deprecated — now stored as wiki pageproject-kickoff/roadmap/viawiki 读写 API(见 TERMINOLOGY))