/project-status
Cross-framework project status aggregator — discovers contributors from installed frameworks, runs declarative detection, produces a unified status report.
Claude Code
$ npx -y skills add jmagly/aiwg --skill project-status --agent claude-code
Codex
$ npx skills add jmagly/aiwg --skill project-status -a codex -y
Cursor
$ npx skills add jmagly/aiwg --skill project-status -a cursor -y
Gemini CLI
$ npx skills add jmagly/aiwg --skill project-status -a gemini-cli -y
GitHub Copilot
$ npx skills add jmagly/aiwg --skill project-status -a github-copilot -y
OpenCode
$ npx skills add jmagly/aiwg --skill project-status -a opencode -y
Windsurf
$ npx skills add jmagly/aiwg --skill project-status -a windsurf -y
SKILL.md
project-status.SKILL.mdnamespace: aiwg
name: project-status
platforms: [all]
description: Cross-framework project status aggregator — discovers contributors from installed frameworks, runs declarative detection, produces a unified status report.
triggers:
- "help me know what is next"
- "tell me where this project stands and what to do next"
- "generate or refresh project status"
- "project status"
commandHint:
argumentHint: "[project-directory=.] [--json] [--guidance \"text\"]"
allowedTools: Read, Glob, Grep, Bash
model: haiku
category: aiwg-utility
modelRole: efficiency
modelTier: economy
<!-- AIWG-SKILL-CALLOUT --> > **Skill access pattern (post-kernel-pivot, 2026.5+)** > > Skill names referenced in this document are AIWG skills, **not slash commands**. Most are not kernel-listed and cannot be invoked as `/skill-name` by the platform. Reach them via: > > ```bash > aiwg discover "<capability>" > aiwg show skill <name> --body > ``` > > Only kernel-listed skills (`aiwg-doctor`, `aiwg-refresh`, `aiwg-status`, `aiwg-help`, `use`, `steward`) are directly invokable as slash commands. See [skill-discovery rule](../../../addons/aiwg-utils/rules/skill-discovery.md).
Project Status (Cross-Framework Aggregator)
Task
Produce a unified status report covering every installed framework, addon, or extension that ships a `kind: status` contributor and is in active use on this project.
This is the cross-framework aggregator described in ADR-023 §Reference contributor frontmatter. It replaces the prior SDLC-only project-status behavior. SDLC-specific reporting now lives in the SDLC framework's status contributor at `agentic/code/frameworks/sdlc-complete/status/contributor.md` — when SDLC is the only contributor in use, the resulting report is functionally equivalent to the prior behavior.
Parameters
- **`[project-directory]`** (optional): Path to project root. Default: current directory `.`
- **`--json`** (optional): Emit machine-readable JSON instead of human-readable markdown
- **`--guidance "text"`** (optional): Extra context the agent should weigh while interpreting contributor blocks
Workflow
Step 1: Locate the registry and project root
Read `.aiwg/frameworks/registry.json` from the project root. The registry lists installed frameworks/addons/extensions by `id`. If the file is missing, treat it as zero installed frameworks — discovery still finds project-local contributors.
cat ./.aiwg/frameworks/registry.json 2>/dev/null
Step 2: Discover candidate contributors
Two sources, processed in order:
1. **Framework-shipped contributors** — for each `id` in the registry, look up its source path under the AIWG installation. Try in order:
- `<AIWG_ROOT>/agentic/code/frameworks/<id>/status/contributor.md`
- `<AIWG_ROOT>/agentic/code/addons/<id>/status/contributor.md`
- `<AIWG_ROOT>/agentic/code/extensions/<id>/status/contributor.md`
Use `Glob` to discover, then `Read` to load the contributor file.
2. **Project-local contributors** — every `*.md` file in `<project-root>/.aiwg/contributors/status/`. These are user-authored contributors that do not require forking a framework.
Step 3: Validate and run detection
For each candidate file:
1. Parse YAML frontmatter. Skip with a warning if frontmatter is malformed or missing required fields (`kind`, `domain`, `description`, `detect.glob`). The schema is published at `<AIWG_ROOT>/agentic/code/addons/aiwg-utils/skills/project-status/contributor.schema.json` — `aiwg validate-metadata` enforces it at deploy time, so most files reaching this step are valid. 2. Run the contributor's `detect.glob` patterns against the project root using `Glob`. Deduplicate matches. If unique match count is less than `detect.minCount` (default 1), the contributor is **installed but not in use** — silently filter out. 3. For surviving contributors, the agent reads the contributor file's body to learn what to report and how to format it.
Step 4: Gather state per contributor
For each in-use contributor, follow its body's guidance to read source files and compute reported state. Contributors are descriptive — they tell the agent what to look at; they do not run code.
Keep blocks compact. Per ADR-023 §Output voice, contributors emit observed state (counts, dates, phase names). Do **not** synthesize prescriptive "recommended commands" inside a contributor's block.
Step 5: Render the unified report
Default (markdown) output shape:
Project: <project-name> (<detected-domain-summary>)
├─ <Domain 1>: <one-line summary> (origin: <framework-id>)
│ ├─ <fact 1>
│ ├─ <fact 2>
│ └─ <fact N>
├─ <Domain 2>: <one-line summary> (origin: <framework-id>)
│ └─ ...
└─ <Domain K>: <one-line summary> (origin: project-local)
└─ ...
Every block carries an **`origin:`** stamp — the framework id (e.g. `sdlc-complete`, `media-curator`) or the literal `project-local`. This lets the user see at a glance whether a finding came from a framework's contributor or a project-specific override.
Step 6: Handle empty discovery
If discovery returns zero in-use contributors:
- **In a project that has frameworks installed but none are in use yet**:
surface "No active framework contributors detected. Run `intake-wizard` if this is a new project, or check `.aiwg/frameworks/registry.json` to confirm what's installed."
- **In a project with no `.aiwg/`**: defer to the heuristic fallback
described in `<AIWG_ROOT>/agentic/code/addons/aiwg-utils/skills/project-status/heuristic-fallback.md` (added by issue #941). When that file is not yet present, surface a short "No project state detected" message.
--json output
Returns a structured array of contributor blocks. Stable shape:
{
"project_root": "/abs/path",
"contributors": [
{
"origin": "sdlc-complete",
"domain": "SDLC",
"summary": "Construction phase, iteration 12, 3 open risks",
"detail": [Read more
namespace: aiwg name: project-status platforms: [all] description: Cross-framework project status aggregator — discovers contributors from installed frameworks, runs declarative detection, produces a unified status report. triggers: - "help me know what is next" - "tell me where this project stands and what to do next" - "generate or refresh project status" - "project status" commandHint: argumentHint: "[project-directory=.] [--json] [--guidance \"text\"]" allowedTools: Read, Glob, Grep, Bash model: haiku category: aiwg-utility modelRole: efficiency modelTier: economy
<!-- AIWG-SKILL-CALLOUT --> > **Skill access pattern (post-kernel-pivot, 2026.5+)** > > Skill names referenced in this document are AIWG skills, **not slash commands**. Most are not kernel-listed and cannot be invoked as `/skill-name` by the platform. Reach them via: > > ```bash > aiwg discover "<capability>" > aiwg show skill <name> --body > ``` > > Only kernel-listed skills (`aiwg-doctor`, `aiwg-refresh`, `aiwg-status`, `aiwg-help`, `use`, `steward`) are directly invokable as slash commands. See [skill-discovery rule](../../../addons/aiwg-utils/rules/skill-discovery.md).
Project Status (Cross-Framework Aggregator)
Task
Produce a unified status report covering every installed framework, addon, or extension that ships a `kind: status` contributor and is in active use on this project.
This is the cross-framework aggregator described in ADR-023 §Reference contributor frontmatter. It replaces the prior SDLC-only project-status behavior. SDLC-specific reporting now lives in the SDLC framework's status contributor at `agentic/code/frameworks/sdlc-complete/status/contributor.md` — when SDLC is the only contributor in use, the resulting report is functionally equivalent to the prior behavior.
Parameters
- **`[project-directory]`** (optional): Path to project root. Default: current directory `.`
- **`--json`** (optional): Emit machine-readable JSON instead of human-readable markdown
- **`--guidance "text"`** (optional): Extra context the agent should weigh while interpreting contributor blocks
Workflow
Step 1: Locate the registry and project root
Read `.aiwg/frameworks/registry.json` from the project root. The registry lists installed frameworks/addons/extensions by `id`. If the file is missing, treat it as zero installed frameworks — discovery still finds project-local contributors.
cat ./.aiwg/frameworks/registry.json 2>/dev/null
Step 2: Discover candidate contributors
Two sources, processed in order:
1. **Framework-shipped contributors** — for each `id` in the registry, look up its source path under the AIWG installation. Try in order:
- `<AIWG_ROOT>/agentic/code/frameworks/<id>/status/contributor.md`
- `<AIWG_ROOT>/agentic/code/addons/<id>/status/contributor.md`
- `<AIWG_ROOT>/agentic/code/extensions/<id>/status/contributor.md`
Use `Glob` to discover, then `Read` to load the contributor file.
2. **Project-local contributors** — every `*.md` file in `<project-root>/.aiwg/contributors/status/`. These are user-authored contributors that do not require forking a framework.
Step 3: Validate and run detection
For each candidate file:
1. Parse YAML frontmatter. Skip with a warning if frontmatter is malformed or missing required fields (`kind`, `domain`, `description`, `detect.glob`). The schema is published at `<AIWG_ROOT>/agentic/code/addons/aiwg-utils/skills/project-status/contributor.schema.json` — `aiwg validate-metadata` enforces it at deploy time, so most files reaching this step are valid. 2. Run the contributor's `detect.glob` patterns against the project root using `Glob`. Deduplicate matches. If unique match count is less than `detect.minCount` (default 1), the contributor is **installed but not in use** — silently filter out. 3. For surviving contributors, the agent reads the contributor file's body to learn what to report and how to format it.
Step 4: Gather state per contributor
For each in-use contributor, follow its body's guidance to read source files and compute reported state. Contributors are descriptive — they tell the agent what to look at; they do not run code.
Keep blocks compact. Per ADR-023 §Output voice, contributors emit observed state (counts, dates, phase names). Do **not** synthesize prescriptive "recommended commands" inside a contributor's block.
Step 5: Render the unified report
Default (markdown) output shape:
Project: <project-name> (<detected-domain-summary>) ├─ <Domain 1>: <one-line summary> (origin: <framework-id>) │ ├─ <fact 1> │ ├─ <fact 2> │ └─ <fact N> ├─ <Domain 2>: <one-line summary> (origin: <framework-id>) │ └─ ... └─ <Domain K>: <one-line summary> (origin: project-local) └─ ...
Every block carries an **`origin:`** stamp — the framework id (e.g. `sdlc-complete`, `media-curator`) or the literal `project-local`. This lets the user see at a glance whether a finding came from a framework's contributor or a project-specific override.
Step 6: Handle empty discovery
If discovery returns zero in-use contributors:
- **In a project that has frameworks installed but none are in use yet**:
surface "No active framework contributors detected. Run `intake-wizard` if this is a new project, or check `.aiwg/frameworks/registry.json` to confirm what's installed."
- **In a project with no `.aiwg/`**: defer to the heuristic fallback
described in `<AIWG_ROOT>/agentic/code/addons/aiwg-utils/skills/project-status/heuristic-fallback.md` (added by issue #941). When that file is not yet present, surface a short "No project state detected" message.
--json output
Returns a structured array of contributor blocks. Stable shape:
{
"project_root": "/abs/path",
"contributors": [
{
"origin": "sdlc-complete",
"domain": "SDLC",
"summary": "Construction phase, iteration 12, 3 open risks",
"detail": [Reusable project context and specialist workflows for the AI tools you already use. Plan software, coordinate specialist reviews, prepare campaigns, investigate incidents, organize research, curate media, and maintain operational knowledge.
Other skills on aiwg.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about project-status.
- Which coding agents can use project-status?
- project-status installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

