ground-state
Before starting any non-trivial implementation, run a pre-flight reconnaissance pass to triangulate git state, project infrastructure, and prior-session memory.
Skill by griffinwork40
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/griffinwork40-ground-state
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, writing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ground-state
What's inside
- Skill name
ground-state- Description
- Before starting any non-trivial implementation, run a pre-flight reconnaissance pass to triangulate git state, project infrastructure, and prior-session memory. Auto-assembles a verified grounding preamble — a session-scoped artifact the orchestrator pastes verbatim into every subsequent sub-agent brief — eliminating stale-worktree reads and silent wrong-path errors before the first edit.
- License
- Apache-2.0
- Instructions
- 127 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## Sub-agent contract
/contract
**Constraint: read-only reconnaissance.** You MUST NOT call `edit_file`, `write_file`, or any mutating bash command (no `git commit`, `git push`, `git checkout`, `mv`, `rm`, file redirection, package installs, etc.). Read-only tools only: `read_file`, `grep`, `glob`, `list_directory`, `memory_search`, and read-only bash (`git status`, `git log`, `git diff`, `cat`, `ls`, `find`, etc.). `memory_search` is non-mutating and is the **only** way to reach the cross-session fact archive — it is in scope for this skill, do not strip it from this list.
If the survey reveals a fix that's tempting to apply, **return it as a recommendation in the snapshot** — the orchestrator decides whether to act. Even if the invoking brief sounds prescriptive ("draft the edit", "apply the change"), this skill stops at the snapshot and the preamble artifact. The orchestrator dispatches a separate implementation step afterward.
## Inline reconnaissance
Run the four surveys below **directly using your own tools**. Do NOT dispatch any sub-agents via the `agent` or `skill` tools — every lookup in this phase is a deterministic read that you execute yourself using `bash`, `glob`, `read_file`, `grep`, `list_directory`, and `memory_search`. Issue all four surveys in a single batched tool-use round where possible.
### State survey *(bash)*
Issue these commands (combine into one or two bash calls):
- `git symbolic-ref --short HEAD` — current branch
- `git rev-parse HEAD` — HEAD SHA
- `git status -s` — uncommitted changes
- `git log --oneline -5` — recent commit history
- `git stash list` — stash state
- `git rev-list --left-right --count HEAD...@{upstream} 2>/dev/null` — upstream divergence
Adapt what you surface to the domain:
| Domain | What to flag |
|--------|-------------|
| `software` | Branch, recent commits, uncommitted changes, stash, upstream divergence. Flag: diverged, uncommitted, stale. |
| `research` | Version-controlled artifact state, current phase, publication target/deadline if discoverable. |
| `design` | Design system version, component library state, current phase, recent file changes. |
| `business` | Financial model freshness, market data recency, current project phase. |
| *(other)* | Recent changes, current project phase, any state that could cause conflicts. |
When domain is unspecified, infer from working directory contents.
### Infrastructure survey *(bash/glob/read_file)*
Check for relevant tooling and configs. Use the domain table below to decide which paths to probe, then probe them yourself. Return a **5-bullet inventory**.
| Domain | What to scan |
|--------|-------------|
| `software` | CI configs (`ls .github/workflows/ 2>/dev/null`), package scripts (`package.json`, `Makefile`, `pyproject.toml`), linters/formatters, authoritative config files for the task. |
| `research` | Reference manager (.bib files), LaTeX setup, data analysis tools (Jupyter, R scripts), collaboration setup. |
| `design` | Design tool configs, prototyping tools, handoff configs (Storybook), asset pipeline scripts. |
| `business` | Modeling tool configs, presentation formats, data source configs, collaboration tool structure. |
| *(other)* | Tooling, build/export pipelines, collaboration infrastructure, config files relevant to the stated domain. |
### Memory survey *(memory_search + read_file)*
Call the **`memory_search` tool** with keywords from the user's current request — FTS5 syntax, so `term1 AND term2`, `"exact phrase"`, and `prefix*` all work. Run 2–3 query variants (different keyword angles) before concluding nothing is there; a single miss is not evidence of absence. Then read hot memory at `~/.afk/state/memory/HOT.md` and the project overlay — `AFK.md`, or `CLAUDE.md` on a Claude Code surface — for conventions bearing on this task.
**Invariant: the cross-session memory archive is only reachable via the `memory_search` tool.** The backing store is SQLite (`~/.afk/state/memory/memory.db`) and is not greppable. Do not glob or grep any filesystem path looking for memory — `memory_search` is the only route in.
Return: relevant facts with 1-line summaries, **plus the stores actually consulted** — e.g. `memory_search: 3 queries, 0 hits; HOT.md: read; AFK.md: read` — so the orchestrator can tell "no relevant memory exists" from "the fork never looked." If `memory_search` is unavailable on this surface, say so explicitly.
### Spine survey *(read_file)*
Read `SPINE.md` from the repo root (same directory as `AFK.md`). If the file does not exist or is empty, skip silently -- do not mention it in the snapshot. If it exists and has entries, extract its invariant (INV-*), rejected-pattern (REJ-*), and taste entries (TST-*) and include them in the snapshot so architectural constraints are visible before proposing changes.
### Eval-pipeline recency survey *(bash — software domain only)*
For software-domain sessions, check whether the eval-run pipeline is current. This guard catches silent regressions that accumulate when the pipeline goes unrun during high-velocity sprints.
Run:
```
tail -1 ~/.afk/agent-framework/improve/eval-runs/.index.jsonl 2>/dev/null
```
Parse the `timestamp` field from the output. Then compute the age in days relative to today's date.
**Threshold**: Read `AFK_EVAL_STALENESS_DAYS` from the environment (default: 7). If the env var is `0`, skip this check silently.
**Surface as a warning finding when any of these are true:**
- The index file does not exist → `⚠ Eval-pipeline has NEVER run. Run \`afk improve eval-run\` to establish a baseline.`
- The file exists but the timestamp is absent or unparseable → `⚠ Eval-pipeline recency guard: index unreadable.`
- Age in days ≥ threshold → `⚠ Eval-pipeline is STALE: last eval-run was N days ago (exceeds AFK_EVAL_STALENESS_DAYS=N threshold). Run \`afk improve eval-run\`.`
Skip this check silently when:
- Domain is not `software`, OR
- Working directory has no `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` at root level (heuristic that this is not a software project), OR
- `AFK_EVAL_STALENESS_DAYS=0`.
Include the result (fresh or warning) in the Implementation risks line of the snapshot.
## Synthesis
Assemble the survey results into a ground-truth snapshot (6 lines minimum, 7 when SPINE.md has entries):
- Branch: `<current>`, `<clean|diverged>`, upstream: `<fresh|stale>`
- Recent work: last 3 commits or stash items
- Infrastructure: CI present? package scripts? authoritative configs for this task
- Memory hits: facts (1-line each) + which stores were consulted, or `none (consulted: …)`
- Spine constraints *(only when SPINE.md exists with entries)*: INV-*, REJ-*, TST-* entries. Omit this line entirely when SPINE.md is absent or empty.
- Implementation risks: e.g. "branch is `main`, don't edit directly"; "CI runs on push"; "memory says prior attempt used approach X"; include any eval-pipeline staleness warning here.
- Epistemic confidence: `<high|medium|low>` — based on how much state could be verified. Flag if working directory is sparse, if domain is unfamiliar, or if key artifacts may be missing.
Surface the snapshot and stop. The orchestrator then uses these verified facts — not assumptions — to decide the next step. This skill never edits files.
## Brief Anchor (auto-runs after synthesis)
After the snapshot is assembled, construct the **Brief Anchor** — a path-verified grounding preamble the orchestrator pastes verbatim into every subsequent sub-agent brief.
**Construction procedure:**
1. From your state survey output, extract the verified `cwd` (absolute path from `pwd`), `branch` (from `git symbolic-ref --short HEAD`), and `HEAD` SHA (from `git rev-parse HEAD`).
2. From your infrastructure survey output, extract the 2–4 canonical file paths most relevant to the task. For each, run `stat <path>` — include the path only if `stat` exits 0. Paths that fail `stat` are omitted; if zero paths survive, set the list to `(none verified)`.
3. Assemble the preamble block:
```
## Orchestrator grounding — read this first
- **cwd**: <absolute path>
- **branch**: <branch name>
- **HEAD**: <full SHA>
- **canonical paths** (stat each on entry; emit GROUNDING_FAILED:<path> and abort if missing):
- <verified_path_1>
- <verified_path_2> ← omit line if not applicable
```
4. Append to the snapshot output under the heading **`## Brief Anchor`** so the orchestrator can copy it directly.
**Orchestrator usage contract:**From griffinwork40/agent-framework, Apache-2.0.
More from griffinwork40/agent-framework
- 0.646score
shadow-verify
griffinwork40
Dispatch a parallel adversarial verifier wave after any high-stakes sub-agent investigation (code reviews, audits, findings reports, large refactors, gap…
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
refactor
griffinwork40
Orchestrates safe, large-scale structural changes across a codebase — symbol renames, API migrations, pattern standardizations, layer restructurings.
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
ship
griffinwork40
Release pipeline for already-done local work.
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
simplify
griffinwork40
Discovers incidental complexity, duplication, and dead code in a codebase and produces a ranked, behavior-preserving reduction plan — optionally applying safe…
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
fix-pr
griffinwork40
One-verb pipeline for the operator's highest-frequency manual loop: fetch a PR's unresolved reviewer feedback (inline review comments, review-summary bodies…
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
review
griffinwork40
Dispatches parallel dimension agents across a diff, PR (URL or number), commit SHA, branch, staged changes, or patch file — covering security, correctness…
SkillAFreshness: A★ 23Claude Code +9 - 0.645score
forge-friction
griffinwork40
Surface recurring friction from session telemetry and generate targeted skills.
SkillAFreshness: A★ 23Claude Code +9 - 0.641score
automate
griffinwork40
Set up a scheduled headless Claude run that sends summaries to Telegram.
SkillAFreshness: A★ 23Claude Code +9 - 0.641score
diagnose
griffinwork40
Parallel root-cause analysis for bugs and failing tests.
SkillAFreshness: A★ 23Claude Code +9 - 0.640score
research
griffinwork40
Dispatches two sub-agents in parallel to gather external and local context for the current task.
SkillAFreshness: A★ 23Claude Code +9 - 0.606score
false-completion-gate
griffinwork40
Fires when a state-mutating task is about to be declared Done (success summary or completion verdict) — to catch silent success, the highest-frequency…
SkillBFreshness: B★ 23Claude Code +9 - 0.606score
resolve
griffinwork40
Resolves PR code review feedback.
SkillBFreshness: B★ 23Claude Code +9
Signals
- Stars
- 23
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 30, 2026 (28 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/griffinwork40/agent-framework
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from griffinwork40
- 0.646score
simplify
griffinwork40
Discovers incidental complexity, duplication, and dead code in a codebase and produces a ranked, behavior-preserving reduction plan — optionally applying safe…
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
fix-pr
griffinwork40
One-verb pipeline for the operator's highest-frequency manual loop: fetch a PR's unresolved reviewer feedback (inline review comments, review-summary bodies…
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
shadow-verify
griffinwork40
Dispatch a parallel adversarial verifier wave after any high-stakes sub-agent investigation (code reviews, audits, findings reports, large refactors, gap…
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
ship
griffinwork40
Release pipeline for already-done local work.
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
refactor
griffinwork40
Orchestrates safe, large-scale structural changes across a codebase — symbol renames, API migrations, pattern standardizations, layer restructurings.
SkillAFreshness: A★ 23Claude Code +9 - 0.646score
review
griffinwork40
Dispatches parallel dimension agents across a diff, PR (URL or number), commit SHA, branch, staged changes, or patch file — covering security, correctness…
SkillAFreshness: A★ 23Claude Code +9
Cite this page
ground-state skill. Agent Mart. https://agentmart.dev/skills/griffinwork40-ground-state (last updated 2026-10-24)