Status Command
The status command validates whether growth loop requirements have been implemented in your codebase, using AST parsing to verify that required files, functions, and patterns are present.
Prerequisites
Before running status, you need:
- A
skene-context/growth-loops/directory containing one or more growth loop JSON files. These are generated by thebuildcommand. See Build for details. - For the
--find-alternativesflag: an API key configured for a cloud LLM provider (OpenAI, Gemini, Anthropic) or a local LLM server running. See configuration for setup instructions.
Basic usage
Check the implementation status of all growth loops in the current project:
uvx skene status
The command auto-detects skene-context/growth-loops/ relative to the current directory and validates every growth loop JSON file found there.
Specify a different project root:
uvx skene status ./my-project
Point to a specific context directory:
uvx skene status --context ./my-project/skene-context
Use LLM-powered semantic matching to find alternative implementations for missing requirements:
uvx skene status --find-alternatives --api-key "your-key"
Flag reference
| Flag | Short | Description |
|---|---|---|
--context PATH | -c | Path to skene-context directory. Auto-detected from <PATH>/skene-context/ or ./skene-context/ if not specified. |
--find-alternatives | Use LLM to search for existing functions that might fulfill missing requirements. Requires an API key. | |
--api-key TEXT | API key for LLM provider (or SKENE_API_KEY env var). Required when --find-alternatives is set. | |
--provider TEXT | -p | LLM provider: openai, gemini, anthropic, ollama (uses config if not provided) |
--model TEXT | -m | LLM model name (uses provider default if not provided) |
How it works
The status command follows a three-step pipeline:
Step 1: Locate growth loop definitions
The command searches for growth loop JSON files in <context>/growth-loops/. If --context is not provided, it auto-detects the context directory by checking:
<PATH>/skene-context/(wherePATHis the positional argument, defaulting to.)./skene-context/
If no growth-loops/ directory is found, the command exits with an error.
Step 2: Validate requirements
Each growth loop JSON defines requirements in two categories:
File requirements — The command checks that each required file exists and runs verification checks against it:
contains— file contains a literal substringcontains_regex— file matches a regular expressionfunction_exists— a function with the given name exists (Python AST parsing)class_exists— a class with the given name exists (Python AST parsing)import_exists— an import matching the given name exists (Python AST parsing)
Function requirements — The command checks that each required function exists in the specified file, using Python AST parsing. If an expected signature is provided, it also validates that the actual signature matches.
Step 3: Display validation report
The command outputs a summary showing:
- Total loops validated and how many are complete
- Per-loop breakdown with pass/fail status for every file and function requirement
- Detailed failure reasons (file not found, function missing, signature mismatch)
A loop is marked COMPLETE when all its file and function requirements pass. Otherwise it is marked INCOMPLETE with a table showing which checks failed.
Finding alternative implementations
When --find-alternatives is enabled, the command extracts all function definitions from the project using AST parsing, then sends missing requirements to the LLM for semantic matching. This helps discover:
- Functions that already fulfill a requirement but have a different name
- Existing implementations in unexpected file locations
- Partial implementations that could be adapted
Alternative matches are displayed below the validation table with a confidence score (only matches above 60% confidence are shown).
uvx skene status --find-alternatives
The LLM configuration is loaded from your config file and can be overridden with --api-key, --provider, and --model.
Example output
Project root: /path/to/project
Context dir: /path/to/project/skene-context
Loops dir: /path/to/project/skene-context/growth-loops
Validating Share Flag...
File requirement met: src/components/ShareButton.tsx...
Function requirement met: handleShare...
Loop complete: Share Flag...
╭── Growth Loop Validation — 1/2 loops complete ──╮
╰────────────────────────────────────────────────────╯
Share Flag (share_flag) COMPLETE (3/3 checks, 12ms)
✅ GROWTH LOOP COMPLETE: Share Flag
Onboarding Flow (onboarding_flow) INCOMPLETE (1/3 checks, 8ms)
✅ src/onboarding/welcome.py Exists OK
❌ src/onboarding/progress.py Missing File not found
❌ track_progress src/onboarding/progress.py Missing
1 loop(s) have unmet requirements.
Next steps
- Build -- Generate growth loop definitions that the status command validates
- Chat -- Use the interactive terminal chat for ad-hoc growth analysis
- Configuration -- Set up persistent config for LLM settings used by
--find-alternatives - CLI Reference -- Full reference for all commands and flags