Imported from nextstage-brasil/skills (
skills/ns-autonomous/SKILL.md). Install upstream withnpx skills add nextstage-brasil/skills --skill ns-autonomous. Copyright stays with the author (Apache-2.0).
Code Autonomous
Harness-aware execution engine: planning depth, doubt resolution, multi-agent dispatch, review gate — standalone pipeline or caller's Phase 2 engine.
Workflow mode (mandatory)
Fixed workflow — named skill handoffs or harness bridges (../../ns-harness/references/subagent-dispatch.md spawn gate). Review gate: ../ns-reviewer/references/review-gate-workflow.md. MUST reviewer-agent when available (else ns-reviewer); then ns-judge in-session only if Code Review: Approved. No Task persona substitutes. ≥2 units → MUST coder-agent per unit (ns-coder); 1 unit → follow ns-coder in A (worktree) — MUST NOT extra spawn. C2 / single-unit workers = implement only; no per-unit review — parent owns REV at closure.
Isolation invariant (non-negotiable)
Skill never writes application code on main product checkout; never commits main/master/base/SOURCE_BRANCH unless human explicitly said work in place this run.
- Standalone + Engine: isolated
WORK_BRANCH+WORKTREE_ROOTbefore any implementation edit. - Worktree creation fails, or CWD/branch still main checkout / base → stop. No "continue on main to unlock plan".
- Sandbox restrictions (
Operation not permitted,.cursor/paths) not permission to violate invariant.
Session boot
See ../../ns-harness/references/session-boot.md. Complete Session boot (blocking) there before any other step in this skill.
After session boot — Engine and Standalone
Engine mode: caller may have already completed Session boot in Phase 0 — re-read session-boot.md only if context is missing.
Standalone: you own Session boot before step 1 of the standalone pipeline.
Routing (read first)
Entry priority table: ../../ns-harness/references/code-skill-routing.md. Standalone triggers: references/entry-triggers.md.
- Origin is a GitLab issue (
ISSUE_URLor issue reference) → entry priority 1 — followns-execution-gitlab-issueend to end; this skill only runs as its Phase 2 engine (Engine mode below). Do not run the standalone pipeline, do not touch GitLab state, do not create a worktree. - Standalone autonomous (local plan file, pasted text/plan, ad-hoc "implement this autonomously" without an issue) → entry priority 3 — run the standalone pipeline: own worktree, own state, own review loop.
See references/routing.md for Engine-mode I/O and anti-cycle rules with ns-execution-gitlab-issue.
Engine mode (invoked by ns-execution-gitlab-issue)
Inputs (already resolved by the caller — this skill never creates them): issue payload, WORKTREE_ROOT, WORK_BRANCH, SOURCE_BRANCH.
- Planning-depth self-decision — evaluate the issue payload and decide single work unit vs. light
requirements.md+tasks/task-NNN-*.md+execution-plan.mdunderdocs/versions/{version_san}/sdd/. Seereferences/planning-decision.md. - Doubt protocol — self-ask, docs-first lookup, self-answer non-destructive doubts, escalate destructive ones as a structured event to the caller instead of mutating GitLab state; pause dependent units until resumed. See
references/doubt-resolution.md. - Multi-agent dispatch — parse work units. 1 unit: follow
ns-coderin this session insideWORKTREE_ROOT(defer review to caller / standalone step 5). ≥2 units: MUST dispatchcoder-agentwhen available (elsens-coder) per unit; parallel only across units with no DAG edge and disjoint file scopes; sequential otherwise. Workers implement only — no per-unitreviewer-agent. Seereferences/multi-agent-dispatch.mdand../../ns-harness/references/subagent-dispatch.md. - Checkpoint commits — one commit per completed sequential unit or per completed parallel batch, inside the worktree; the caller squashes at delivery.
- Fix-loop entry point — when re-invoked after
Rejected, run one coder call on the whole map verbatim (no unit-count split, no “or units”). Skip units already done. - Return to caller: unit statuses, files changed, any open destructive doubt, and (first invocation only) a plan-based
estimate_secondshint — the caller appliesset_issue_estimateonly when the issue estimate is empty and the value is ≥ 60 (see../ns-execution-gitlab-issue/references/time-tracking.md).
Standalone pipeline (non-GitLab origin)
Same internals as Engine mode, but this skill owns the whole run:
- Resolve the descriptor — local plan path or pasted text. No MCP calls.
- Infer
change_kind(fix/feat), allocate{version_san}, createdocs/versions/{version_san}/sdd/when artifacts needed. - Create its own worktree:
.worktrees/{version_san}/+ branchwork/{version_san}from the resolved base branch, following../../ns-harness/references/worktree-setup.md. Path is under the repo root, never under.cursor/. On failure → abort (do not fall back to the main checkout) — seereferences/standalone-pipeline.md. - Planning-depth self-decision, doubt protocol (destructive doubt → chat-only gate, no GitLab actions available), multi-agent dispatch — identical logic to Engine mode.
- Internal review loop —
../ns-reviewer/references/review-gate-workflow.md(exhaustive map → one coder →delta;Approved= 10 only): MUSTreviewer-agentwhen available (elsens-reviewer) version-closure code mode. Do not runns-judgeuntil codeApproved. Then in-session../ns-judge/SKILL.md(closure). Product files changed after judge Rejected: code review again then judge again. - Report per
review-gate-workflow.mdFinal report fields plus{version_san}, worktree path, commit(s), and follow-ups. No GitLab board, no MR — unlessdocs/context/gitlab-sync-config.mdexists and the human explicitly asked for one (out of scope for v1; standalone stays local-only otherwise).
See references/standalone-pipeline.md for the full flow.
Stop and ask the human
| Condition | Action |
|---|---|
| Destructive doubt (Engine mode) | Return escalation event to caller — no chat pause here |
| Destructive doubt (standalone) | Stop in chat, ask, resume with the answer as context |
Worktree conflict for the same {run_id} (standalone) |
Stop unless explicit resume |
git worktree add failed (permissions/sandbox/path) |
Abort — report path attempted; never fall back to main checkout or .cursor/ |
Still on main/master/base branch when about to edit code |
Abort — isolation missing; do not implement |
| Human explicitly said "do not create a new branch / work in place" | Only then may edit the current branch; still never invent a .cursor/ path |
| Base branch for standalone worktree unresolved | Stop — ask once |
Review Blocked or 3 rounds exhausted |
Stop, report as blocked — do not fabricate success |
| Engine mode invoked with a GitLab origin but no worktree/branch given | Stop — this is a caller contract violation, not a doubt |
Related skills
| Skill | Role |
|---|---|
ns-execution-gitlab-issue |
GitLab flow owner — calls this skill for Phase 2 |
ns-coder |
Implement via in-session (1 unit) or coder-agent (≥2 — MUST when available) |
ns-reviewer |
Closure code gate via reviewer-agent (MUST when available) — not per unit |
ns-judge |
Delivery proof in-session after Code Review: Approved |
ns-harness |
Artifact layout, worktree mechanics, discovery |
References
| File | When |
|---|---|
references/routing.md |
Issue vs. standalone; Engine-mode I/O and anti-cycle with ns-execution-gitlab-issue |
references/entry-triggers.md |
Priority 3 standalone entry phrases |
references/planning-decision.md |
Self-evaluation heuristic: single unit vs. requirements+tasks+plan |
references/doubt-resolution.md |
Self-ask, docs-first lookup, destructive criteria, escalation shape |
references/multi-agent-dispatch.md |
DAG + disjoint-scope parallel rule, subagent prompt, checkpoint commits |
references/standalone-pipeline.md |
Full non-GitLab flow: version alloc, own worktree, review loop |
Forbidden
- Review substitutes (
senior-tech-lead-reviewer,bugbot,security-review, or any non-ns-reviewercode gate) — harnessreviewer-agentis allowed; see../ns-reviewer/references/review-gate-workflow.md ns-judgebeforeCode Review: Approved- Reporting success without both
Approved, or explicit blocked state - Skipping re-review after a
Rejectedfix before closure
