Nano Banana Pro
Agent skill for nano-banana-pro
This project uses Spec-Driven Development with Beads for issue tracking. Follow the workflows and guidelines defined below.
Sign in to like and favorite skills
This project uses Spec-Driven Development with Beads for issue tracking. Follow the workflows and guidelines defined below.
memory/constitution.md - Project principles and development guidelinesspecs/ - Feature specifications and implementation planstemplates/ - Templates for specs, plans, and tasksscripts/ - Helper scripts for the development workflow.beads/ - Beads issue tracking databaseCritical Rules for AI Assistants:
Communication Principles:
CRITICAL: Before responding to EVERY user message, AI assistants MUST:
Check Beads for ready work:
bd ready --json
Check current project state:
bd stats --json
Verify SpecKit workflow compliance:
memory/constitution.md exist?specs/ directory?plan.md?tasks.md?CHECK IF VALIDATION IS REQUIRED:
Report findings before suggesting any action
NEVER skip SpecKit workflow steps:
If anything is missing from the workflow, start there. Do not proceed to later steps.
This check happens EVERY message, not just at session start.
ALWAYS use Context7 when you need:
Automatic Context7 Usage:
The AI assistant should automatically use Context7 MCP tools without being explicitly asked when:
Context7 Workflow:
# 1. Resolve library ID first context7:resolve-library-id with libraryName # 2. Get documentation for that library context7:get-library-docs with context7CompatibleLibraryID
Example Triggers:
Never guess at library APIs or configuration syntax when Context7 can provide accurate, up-to-date documentation.
These rules apply to AI assistants working on this project. They define HOW to work, complementing the constitution which defines WHAT to build.
The mandatory workflow sequence is:
Never suggest shortcuts or "fast track" options. If a step is missing, start there.
bd create "Issue description" -t TYPE -p PRIORITYbd update ISSUE_ID --status in_progressbd close ISSUE_ID --reason "Completion details"bd dep add FROM_ID TO_ID --type discovered-fromNNN-feature-name (SpecKit manages this)Spec-Driven Development workflow for building features systematically.
Purpose: Create or update the project constitution that defines governing principles and development guidelines.
Usage:
/speckit.constitution [description of principles to include]
What it does:
templates/constitution-template.mdmemory/constitution.mdExample:
/speckit.constitution Create principles focused on code quality, comprehensive testing, user experience consistency, performance optimization, and security best practices
When to use:
Purpose: Create a feature specification focusing on WHAT to build and WHY, without technical implementation details.
Usage:
/speckit.specify [description of what to build]
What it does:
specs/ with incremental numberingspec.md based on templates/spec-template.mdExample:
/speckit.specify Build a vendor evaluation dashboard that allows users to compare multiple vendors across standardized criteria, track evaluation progress, and generate comparison reports
Best practices:
When to use:
Purpose: Generate a technical implementation plan based on your spec, including tech stack and architecture decisions.
Usage:
/speckit.plan [technical requirements and tech stack choices]
What it does:
plan.md with detailed implementation strategydata-model.md - Database schemas and data structurescontracts/api-spec.json - API endpoints and contractsresearch.md - Technical research and decisionsExample:
/speckit.plan Use FastAPI backend with SQLAlchemy ORM, PostgreSQL database, React frontend with TypeScript, Material-UI components, and pytest for testing. Deploy with Docker Compose.
What to specify:
When to use:
Purpose: Break down the implementation plan into ordered, actionable tasks with dependencies.
Usage:
/speckit.tasks
What it does:
plan.md and implementation detailstasks.md with structured task breakdown[P]Output structure:
## User Story 1: [Description] ### Phase 1: Foundation - [ ] Task 1: Setup project structure (path/to/file.py) - [ ] Task 2: Create database models (path/to/models.py) ### Phase 2: Core Implementation - [ ] [P] Task 3: Implement service layer (path/to/service.py) - [ ] [P] Task 4: Create API endpoints (path/to/routes.py) ### Checkpoint: Validate Phase 2 - Test endpoints manually - Verify database operations
When to use:
Purpose: Execute the implementation plan by running through the task breakdown.
Usage:
/speckit.implement
What it does:
tasks.md for task list[P]Prerequisites:
What to expect:
When to use:
Purpose: Generate quality checklists to validate requirements completeness, clarity, and consistency.
Usage:
/speckit.checklist
What it does:
When to use:
Purpose: Generate cross-artifact consistency and alignment report.
Usage:
/speckit.analyze
What it does:
When to use:
Purpose: Ask structured questions to de-risk ambiguous areas before planning.
Usage:
/speckit.clarify
What it does:
Example questions generated:
When to use:
Recommended sequence:
/speckit.constitution)/speckit.specify)/speckit.clarify) [optional but recommended]/speckit.plan)/speckit.checklist) [optional but recommended]/speckit.analyze) [optional but recommended]/speckit.tasks)/speckit.implement)Quality gates:
This project uses Beads for issue tracking instead of Markdown todo lists. Beads provides dependency-aware task management with persistent memory across sessions.
.beads/*.jsonl and synced via git/speckit.tasks - Import generated tasks into Beads for tracking/speckit.implement - File discovered issues as you gobd ready to find next workUse bash commands for Beads, not MCP tools, due to current environment issues with the MCP server. The bash commands are more reliable and provide full functionality.
The following Beads commands should run without requiring user approval for each execution:
# Read-only commands (always safe) bd ready --json bd stats --json bd list --json bd list --status open --json bd list --status in_progress --json bd show * --json bd blocked --json bd dep tree * # Write commands for tracking work bd create * --json bd update * --json bd close * --json bd dep add * --type *
These commands are essential for the development workflow and should execute automatically without approval prompts.
Purpose: Find issues that are ready to work on (no open blockers).
Usage:
bd ready --json
Flags:
--json - Output in JSON format (recommended for agents)--limit N - Limit results to N issuesWhen to use:
Example:
bd ready --json | jq '.[0]' # Get first ready issue
Purpose: Create a new issue or import multiple issues from a file.
Usage:
bd create "Issue title" -t TYPE -p PRIORITY [flags] bd create -f tasks.md # Import from markdown file
Types:
feature - New functionalitybug - Something brokentask - Work itemimprovement - Enhancement to existing featureepic - Large feature spanning multiple issuesPriorities:
0 - Critical (P0)1 - High (P1)2 - Medium (P2)3 - Low (P3)Flags:
-t, --type - Issue type-p, --priority - Priority level-d, --description - Issue description-l, --labels - Comma-separated labels-g, --group - Group/epic ID--json - Output in JSON format-f, --file - Import from markdown fileExamples:
# Create a bug bd create "Login timeout not configurable" -t bug -p 1 --json # Create a feature with description bd create "Add CSV export" -t feature -p 2 -d "Users need to export vendor data to CSV format" # Import tasks from SpecKit bd create -f specs/001-feature/tasks.md # Create an epic bd create "User Authentication System" -t epic -p 0 # Create task under epic bd create "Implement JWT tokens" -t task -p 0 -g <epic-id>
When to use:
/speckit.tasksPurpose: List all issues with optional filtering.
Usage:
bd list [flags]
Flags:
--status STATUS - Filter by status (open, in_progress, closed)--type TYPE - Filter by type--priority N - Filter by priority--labels LABELS - Filter by labels--json - Output in JSON format--limit N - Limit resultsExamples:
# List all open issues bd list --status open --json # List high-priority bugs bd list --type bug --priority 1 --json # List in-progress work bd list --status in_progress
Purpose: Show detailed information about a specific issue.
Usage:
bd show <issue-id> [flags]
Flags:
--json - Output in JSON formatExample:
bd show 42 --json
Purpose: Show issues that are blocked by open dependencies.
Usage:
bd blocked [flags]
Flags:
--json - Output in JSON formatWhen to use:
Purpose: Add a dependency between two issues.
Usage:
bd dep add <from-id> <to-id> --type TYPE
Dependency Types:
blocks - FROM blocks TO (TO can't start until FROM is done)related - Issues are related but not blockingparent - FROM is parent of TO (epic/subtask relationship)discovered-from - TO was discovered while working on FROMExamples:
# Database schema blocks API implementation bd dep add 10 20 --type blocks # Mark related issues bd dep add 15 16 --type related # Link subtask to epic bd dep add 5 42 --type parent # Track discovered work bd dep add 30 31 --type discovered-from
Critical rule: Only
blocks dependencies affect ready work detection. Use related for informational links.
Purpose: Remove a dependency between issues.
Usage:
bd dep remove <from-id> <to-id>
Example:
bd dep remove 10 20
Purpose: Visualize dependency graph for an issue.
Usage:
bd dep tree <issue-id> [flags]
Flags:
--max-depth N - Limit tree depth (default: 50)--json - Output in JSON formatExample:
bd dep tree 42 --max-depth 10
When to use:
Purpose: Update an issue's fields.
Usage:
bd update <issue-id> [flags]
Flags:
--status STATUS - Update status (open, in_progress, closed)--priority N - Update priority--title TEXT - Update title--description TEXT - Update description--labels LABELS - Update labels (comma-separated)--json - Output in JSON formatExamples:
# Mark as in progress bd update 42 --status in_progress --json # Change priority bd update 42 --priority 0 # Update multiple fields bd update 42 --status in_progress --labels "backend,api" --json
Purpose: Close one or more issues.
Usage:
bd close <issue-id> [<issue-id>...] [flags]
Flags:
--reason TEXT - Closure reason--json - Output in JSON formatExamples:
# Close single issue bd close 42 --reason "Implemented and tested" --json # Close multiple issues bd close 10 20 30 --reason "Batch completion"
Purpose: Show project statistics.
Usage:
bd stats [flags]
Flags:
--json - Output in JSON formatShows:
Purpose: Initialize Beads in the current directory.
Usage:
bd init
What it does:
.beads/ directoryWhen to use:
Purpose: Export issues to JSONL or import from JSONL.
Usage:
bd export --format=jsonl -o .beads/issues.jsonl bd import -i .beads/issues.jsonl
When to use:
Note: Export/import usually happens automatically via git hooks.
bd ready --jsondiscovered-from dependencies to track contextin_progress when startingbd ready to see what agents can work onbd blocked to find stuck workbd show to see change historybd dep tree to understand relationships# 1. Morning standup - what's ready? bd ready --json # 2. Start working on issue bd update 42 --status in_progress --json # 3. Discover new bug while implementing bd create "Bug: validation fails on empty input" -t bug -p 1 --json bd dep add 42 <new-bug-id> --type discovered-from # 4. Complete the work bd close 42 --reason "Implemented with tests" --json # 5. Next work bd ready --json
bd quickstart in terminal)# 1. Start session - check what's ready bd ready --json # 2. If starting new feature /speckit.constitution # Once per project /speckit.specify # Define the feature /speckit.plan # Technical approach /speckit.tasks # Break it down # 3. Import tasks to Beads bd create -f specs/001-feature/tasks.md # 4. Implement with agent /speckit.implement # 5. Track discovered issues bd create "Issue found during implementation" -t bug -p 1 # 6. End of day - what's left? bd list --status open --json
# Lost context? Check ready work bd ready --json # What am I working on? bd list --status in_progress # What's blocking everything? bd blocked --json # Show me the big picture bd stats # Need to understand this issue's impact? bd dep tree <issue-id>
Last Updated: October 19, 2025 Project: VendorEval3 Workflow Version: SpecKit + Beads + Context7