octobot-cloud
GitHub指导在 Cursor Cloud Agent 中执行 OctoBot 项目的开发工作流,涵盖环境配置、分支管理、tentacles 重装及代码规范。
Trigger Scenarios
Install
npx skills add Drakkar-Software/OctoBot --skill octobot-cloud -g -y
SKILL.md
Frontmatter
{
"name": "octobot-cloud",
"description": "OctoBot git repo on Cursor Cloud Agent: bash, cloud-install, tentacles reinstall, pytest\/pylint, debugging failing pytest (integration\/functional, cross-package), extended_linter, changes under octobot\/, packages\/, packages\/tentacles\/."
}
OctoBot Cloud Agent
Multi-step roadmap plans (title or description contains roadmap): author with skill cloud-roadmap (.cursor/skills/cloud-roadmap/SKILL.md); execute with this skill.
Workflow
source .cursor/env.shbefore Python tooling.- Checkout
dev(or user base) → create feature branch → implement → commit → PR todev(match--baseon extended_linter to PR target). - After
packages/tentacles/edits:bash .cursor/reinstall-tentacles.sh. - Before commit: remove any scratch plan files (
PLAN-*.md,*.plan.md,.cursor/plans/) from the tree; do not stage them (path.deny_agent_plans). Do not change agent docs (seeoctobot-cloud.mdcpath list) unless the task owns them — otherwise restore fromorigin/<base>(agent_docs.no_regression_vs_merge_base). - After
git rebaseor fast-forward ontoorigin/dev, re-checkout unrelated agent-doc paths fromorigin/devif the working tree still has stale copies. Squash commits must reflect the current branch tip, not an old cloud workspace snapshot. - Before handoff:
python -m tools.extended_linter --base origin/dev(ororigin/<base_ref>). - Run targeted pytest per reference-pytest.md (CI matrix). If any test fails, start with step 1 — visible logs, then follow When tests fail before changing production code or the harness.
Install and env
- Profile default:
ui-node-web(environment.json→PANTS_PANTSD=false OCTOBOT_CLOUD_PROFILE=ui-node-web bash .cursor/cloud-install.sh). GitHubcloud-env-validatestill usesci-tentacles. - Success: Build log contains
OCTOBOT_CLOUD_INSTALL_OK. Do not guess from UI alone. - Validate:
bash .cursor/cloud-validate.sh --profile ci-tentacles --json - Profiles:
package-only(no tentacles),ci-tentacles(CI parity),ui-node-web(+ web UI build).
Layout
- Repo root: OctoBot application,
packages/*,tools/, rootAGENTS.md(package boundaries colocated asAGENTS.md). - Installed tentacles output: repo-root
tentacles/(generated — never edit). - Tentacles sources:
packages/tentacles/.
Coding conventions
- Python (imports, literals, public API): CONTRIBUTING-agent.md — Python conventions (agents).
- Node journal: skill node-journal (
.cursor/skills/node-journal/SKILL.md); colocatedoctobot/community/node_journal/AGENTS.md. Integrators record only; not a source of truth.
Policy and verify
- Machine rules:
tools/extended_linter/config/policy.yaml(extend viatools/extended_linter/ARCHITECTURE.md) - CLI:
python -m tools.extended_linter --base origin/dev --continue --report json - Read reports:
rule_id,file,line,hintblocks.
Architecture docs
- Index: root
AGENTS.md(when to read, CI matrix table) - Per-package:
octobot/AGENTS.md,packages/tentacles/AGENTS.md,packages/<name>/AGENTS.md - Read colocated
AGENTS.mdbefore cross-package or tentacles changes.
Formatting (touched paths only in 1b)
- Python:
ruff format/ruff checkwhen configured (CI enforce later). node_web_interface: Biome inpackages/tentacles/Services/Interfaces/node_web_interface/.
Pytest
See reference-pytest.md for cwd and PYTHONPATH per CI matrix package.
When a test fails
- Re-run the failing node with log-cli per step 1 (single process; omit
-n auto). - State the invariant (one sentence: what must be true when the test passes).
- Find the failure boundary (last good layer vs first bad layer); do not widen mocks, seeds, or timeouts until that boundary is clear.
- Apply the full protocol in When tests fail before editing production code or the harness.
Node UI tests (agents)
- User-visible UI: For copy, layout, errors, or help in
node_web_interfaceor classicweb_interface, read skill end-user-ui (.cursor/skills/end-user-ui/SKILL.md) and colocatedAGENTS.mdunder those tentacle paths. - In PRs: Vitest in
packages/tentacles/Services/Interfaces/node_web_interface/(npm test) plus Python/API tests (node_api_interface,packages/node, tentacles pytest as needed). Do not add Playwright e2e undere2e/ortest:e2escripts (path.deny_node_web_playwright_e2e). - CI runs Vitest for tentacles
package.jsonprojects; e2e is not in the matrix.
Node UI manual QA (agent seed)
Not required for normal pytest / ci-tentacles package work — only when the task uses the live Node web UI.
For ui-node-web: follow skill agent-seed (.cursor/skills/agent-seed/SKILL.md). Typical one-shot: source .cursor/env.sh, source .cursor/agent-seed.env, stop any running node, then bash .cursor/seed-agent.sh --full. After startup, log in with passphrase demodemo; use the full /app UI as needed, and /app/debug to send user actions.
Out of scope unless asked
- Live bot ports, docker image publish, signed tentacles release pipeline.
pip install/npm installto fix imports.
Version History
- 3.0.0-beta3 Current 2026-10-19 02:08


