skills/using-spx-cli/SKILL.md
Use when you need to create a Gitea issue, update its spec/plan markers, read or merge an issue's state JSON, or post a PR review comment in a repo that uses the spx CLI (superpowers-vscode workflow).
npx skillsauth add cruldra/skills using-spx-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
spx is a thin Gitea wrapper shipped with superpowers-vscode for agent (cc/codex) use. It reads host + token from ~/.config/tea/config.yml, with GITEA_TOKEN env var as a fallback. After opencli external register spx, both spx ... and opencli spx ... work; prefer opencli spx ....
You need to do exactly one of these against a Gitea repo:
spec/plan markers and/or initial state JSON<!-- spx:spec=... --> or <!-- spx:plan=... --> marker line<!-- spx:review=1 -->)Not for: merging PRs, pushing to main, or rewriting issue bodies beyond the spx:* markers and the state JSON comment. Those are out of scope.
KanbanPanel persists per-issue orchestration state as a JSON blob in the issue's last comment. spx embeds the schema and validates before any write — bad input fails fast with a JSON-pointer field path.
Full draft-07 schema: references/state-json.schema.json (alongside this SKILL.md; copy of schemas/state-json.schema.json in superpowers-vscode). 14 fields, additionalProperties: false. Quick reference:
| Field | Type | Notes |
|---|---|---|
| column | enum | todo | in-progress | review | done |
| sessionId | string | brainstorm cc session id |
| implementSessionId | string | implement cc session id |
| reviewSessionId | string | review codex thread_id |
| profilePath | string | cc --settings path |
| specFile | string | repo-relative .md path (must contain /) |
| planFile | string | repo-relative .md path (must contain /) |
| pr | string | linked PR number |
| prMerged | boolean | PR merged? |
| branch | string | feature branch name |
| worktreePath | string | worktree path |
| implementStatus | enum | running | done | failed |
| color | string | terminal ThemeColor id |
| autoReview | boolean | per-issue auto-review override |
Read the full JSON schema file when you need exact patterns or want to validate locally.
| Want to do | Command |
|---|---|
| Create issue | opencli spx issue create --json --title "T" --spec PATH.md --plan PATH.md |
| Create issue + initial state | opencli spx issue create --json --title "T" --state-json '{...}' |
| Update spec / plan marker | opencli spx issue marker --issue N --type spec\|plan --value PATH.md |
| Read state JSON | opencli spx issue state get --issue N |
| Merge state JSON | opencli spx issue state merge --issue N --state-json '{...}' |
| Post review comment | opencli spx pr review-comment --pr N --body-file /tmp/x.md |
Always pass --json to issue create — without it stdout is just #42 and you lose html_url. Recovering the URL afterwards is awkward (no spx issue show), and probing with another create will silently duplicate the issue.
--state-json / --state-file are mutually exclusive (on both issue create and issue state merge). state merge is shallow: incoming fields override existing ones, untouched fields remain.
--repo OWNER/REPO — defaults to the current git origin--host URL — defaults to the default login in ~/.config/tea/config.yml--json — single-line JSON output instead of human text--cwd PATH — directory used for repo auto-detection (default .)Create an issue with markers and initial state in one shot:
opencli spx issue create --json \
--title "看板加 .env 锁定开关" \
--spec docs/superpowers/specs/env-lock/spec.md \
--plan docs/superpowers/plans/env-lock/plan.md \
--state-json '{"column":"todo","autoReview":true}'
stdout: {"number":42,"html_url":"http://.../issues/42","state":{...}}.
Update plan marker on an existing issue (replaces existing line, or appends):
opencli spx issue marker --issue 42 --type plan \
--value docs/superpowers/plans/env-lock/plan.md
Read current state, then merge new fields (shallow merge, validated against schema):
opencli spx issue state get --issue 42
# {"column":"in-progress","pr":"73","branch":"feature/x","implementStatus":"running"}
opencli spx issue state merge --issue 42 \
--state-json '{"implementStatus":"done","prMerged":true}'
Post a review comment from a file (avoids shell-escaping large markdown):
opencli spx pr review-comment --pr 73 --body-file /tmp/review-73.md
--json on issue create — default stdout is just #42, no URL. Don't re-run create to "see the format"; it's a write op, you'll duplicate the issue.value must contain / and end with .md, otherwise the upstream webhook regex skips it.<!-- spx:* --> lines or the state JSON comment — use issue marker / issue state merge.additionalProperties: false); typos like coloum (vs column) fail with a /coloum field-path error.--body / --body-file and --state-json / --state-file are mutually exclusive within their pair.tea login or export GITEA_TOKEN=....testing
智能体 UAT 验收测试技能。用于验证智能体在真实场景下的表现是否满足预期。支持任意智能体框架(langchain、langgraph、deepagents、crewai 等)。触发词:测试智能体、验收测试、agent test、UAT
development
Use when implementing, modifying, refactoring, or reviewing code and the agent must follow explicit coding standards for simplicity, readability, maintainability, testability, project conventions, and minimal safe changes.
development
Use when integrating the deepagents SDK into a Python project — creating agents, configuring backends, adding subagents, middleware, memory, or skills. Also use when debugging deepagents agents or choosing between StateBackend, FilesystemBackend, and LocalShellBackend.
development
协助开发基于 Refine 框架的 React 应用。提供项目初始化、核心配置、数据提供者(Data Providers)、认证(Auth Provider)以及 UI 库集成的指导。专注于使用 shadcn/ui 构建现代化的后台管理系统。