Install
$ agentstack add skill-victoraurelius-claude-starter-kit-start-session ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
/start-session — Session Orchestration
Prepare a fresh session by loading the right context + detecting conflicts with concurrent sessions. Works in ANY project; project-specific sections (gap pipeline, wave history, cloud stack) degrade gracefully when absent.
When to use
- Starting a new conversation in this repo
- After
/clearor/compact - Before critical work (wave merge, audit, release)
- When unsure "what next?" → run this instead of reading blindly
Process
Step 1 — Run the state collector
./.claude/skills/workflow/start-session/scripts/collect-state.sh
Output: active branch, open PR count + per-PR CI/merge state, repo health level, current wave (if any), top blocker gaps (if a gap pipeline exists), MCP server status, recent commits. Cloud stack is opt-in via --cloud.
Step 2 — Read digest sources (context-aware — minimize auto-load)
Default to script/CSV queries over narrative file reads. Reading files under documents/** may trigger path-scoped rule auto-loads and inflate context (per context-budget-mandate.md).
Default flow (skip file reads):
- Branch / PRs / CI / blockers — already in
collect-state.shoutput. - Gap detail (if project uses a gap pipeline) — query
gap-status.csvinstead of reading each gap file. - Recent waves (if project uses wave-pack methodology) —
tail -3 .claude/skills/quality/wave-pack-planner/data/wave-history.jsonl.
Only Read files when the user explicitly asks OR the script output is insufficient for the task at hand. CLAUDE.md auto-loads every session — no need to re-read.
Step 3 — Session-lock check (optional, --no-lock skips)
ls .claude/session-locks/— list active locks.- If a lock matches a branch/gap the user intends to touch → WARN: "Session X is editing branch Y / GAP-Z, continuing risks conflict."
- User confirms → create own lock:
session-{timestamp}-{hostname}.lock. - Lock content: YAML with
branch,gaps,started,intent.
Schema + overlap rules: reference/context-template.md §Lock File Schema.
Step 4 — Output summary block
Format per reference/context-template.md. Data sources (from collect-state.sh):
| Field | Source | |-------|--------| | Branch state | git diff --name-only | | Open PRs | gh pr list (per-PR CI + mergeStateStatus) | | Repo level | scripts/repo-status.sh --json .level if present, else CI-only | | CVE / stale branches | same --json → .security, .branches (if repo-status.sh present) | | Recent commits | git log --since='3 days ago' --oneline | | MCP servers | claude mcp list → connected/total + failed names. Verify at session start per mcp-first-with-fallback.md §3 (avoid defaulting to CLI all session because MCP availability was never checked). | | Wave (optional) | wave-history.jsonl tail — only when wave-pack methodology in use | | Blocker gaps (optional) | gap-status.csv — only when a gap pipeline exists | | Cloud stack (opt-in) | --cloud → read-only aws sts/ec2/rds/cloudwatch describe; cached 30m |
Example output (bilingual — labels in Vietnamese per kit convention; technical terms kept English):
## Ngữ cảnh session (2026-01-01 09:30)
**Nhánh:** main (clean) / worktrees: 0
**Mức repo:** GREEN (CI green, 0 CVE, 0 stale branches, 0 audit P0)
**PRs đang mở:** 0
**MCP servers:** 1/1 connected (github)
**Gaps blocker (top):** GAP-101, GAP-102 ← only if gap pipeline exists
**Wave hiện tại:** Wave example — shipped ← only if wave methodology in use
**Sức khỏe context:** fresh session
**Đề xuất tiếp theo:** pick a blocker gap to fix OR /repo-status for a deeper triage
Step 4 flags (collect-state.sh)
| Flag | Effect | |---|---| | --quick | One-line summary | | --json | Structured JSON for hooks / other agents | | --no-lock | Skip session-lock check / create | | --cloud | Opt-in: probe cloud stack (AWS read-only) | | --refresh-cloud | Bypass 30m cloud cache, fetch now |
Step 4.5 — Parallel-eligibility hint (mandatory after determining "next action")
Whenever proposing a next action, scan whether it is wave-eligible. If yes → nudge the user toward a wave + parallel agents instead of serial PRs.
Wave-eligible when:
- ≥3 clearly-divided sub-tasks (Phase 1/2/3, Sub-PR a/b/c, Layer 1/2/3…)
- Files each sub-task touches are disjoint (no shared config, no shared migration version, no shared service class)
- Each sub-task is a self-contained TDD/build cycle (no waiting on another)
NOT wave-eligible when: only 1-2 sub-tasks; sub-tasks share a migration version slot; sub-tasks share a single config file; or foundation hasn't shipped yet (PR-0 needs to ship shared interfaces first).
If wave-eligible → output:
**Wave-eligible:** YES — N disjoint sub-tasks. Suggest: wave plan + spawn 4-5 parallel agents (`isolation:worktree`, max 5).
Reference: `.claude/skills/quality/wave-pack-planner/SKILL.md`.
Else:
**Wave-eligible:** NO — {reason, e.g. "shared config file" / "1 sub-task"}. Serial PR is fine.
Rationale: picking a multi-phase task and shipping serial PRs is ~3x slower than parallel agents on disjoint scope.
Step 5 — Handoff to next skill
User decides:
- Wave plan (if Step 4.5 says YES) —
.claude/skills/quality/wave-pack-planner/SKILL.md /repo-status— deeper health check- Single-gap PR flow —
.claude/skills/workflow/start-pr/SKILL.md /check-pr//fix-pr— audit / repair an in-flight PR
Context-degradation heuristic
Flag the session degraded if ANY: turn count > ~40; last /compact > 2h ago; user reports output-quality drop; multiple retries on simple tasks.
Action when degraded: nudge user to /clear + re-run /start-session. Don't proceed with critical work (wave merge, production deploy) in a degraded session.
Session lock convention
Directory: .claude/session-locks/ (git-ignored, per-machine). File: session-{YYYYMMDD-HHMMSS}-{hostname}.lock. Schema: reference/context-template.md §Lock File Schema.
Lifecycle: created on /start-session (unless --no-lock); updated when switching branch/gap; removed on /end-session OR stale-purged after 4h. Lock is a HINT — git worktree isolation is the real conflict barrier.
Rules
- LUÔN chạy
collect-state.shtrước — không tự suy diễn status. - If the script fails (gh unauthed, jq missing) → report it clearly, don't guess.
- MCP status MUST appear in summary — if MCP servers failed or 0/N connected, suggest fixing before critical work (GitHub MCP is needed for merge/PR ops); per
mcp-first-with-fallback.md§3 fall back to CLI but know to swap back when fixed. - Step 4.5 is mandatory — always emit a "Wave-eligible: YES/NO" line after the next-action suggestion.
- Gap / Wave / Cloud sections are OPTIONAL — only surface them when the artifact exists.
Gotchas
collect-state.shneedsghauthenticated for PR/CI fields — falls back gracefully otherwise..claude/session-locks/and.claude/session-cloud-cache/MUST be git-ignored.- Stale locks (>4h) auto-purged; a crash mid-session can leave an orphan —
--no-lockor manualrmclears it. - MCP transient connect failure:
claude mcp listmay show✗ Failedthen✓ Connectedon retry (Docker daemon starting / image pulling). On failure: verify daemon, restart server, re-list; if still failed, fall back to CLI permcp-first-with-fallback.md§3. - Cloud section is opt-in (
--cloud) and read-only — never returns secret material (describe/list only). Cache is git-ignored.
Skill contents
SKILL.md— this filereference/context-template.md— output format + lock schema + examplesscripts/collect-state.sh— state collector (full /--quick/--json;--cloud/--refresh-cloud/--no-lock)
Related
.claude/skills/workflow/repo-status/SKILL.md— deeper remote health.claude/skills/workflow/end-session/SKILL.md— symmetric counterpart (docs-sync + handoff + lock release).claude/skills/quality/wave-pack-planner/SKILL.md— wave + parallel-agent methodology (Step 4.5 handoff)- Rule:
.claude/rules/output-review-mandate.md(sessions produce outputs) - Rule:
.claude/rules/mcp-first-with-fallback.md(MCP status check at session start) - Rule:
.claude/rules/context-budget-mandate.md(why Step 2 prefers queries over file reads)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: VictorAurelius
- Source: VictorAurelius/claude-starter-kit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.