Imported from LFDT-Iguazu/waterfall-one-click-setup-app (
AGENTS.md). Install upstream withnpx skills add LFDT-Iguazu/waterfall-one-click-setup-app. Copyright stays with the author.
AGENTS Guide
This file helps coding agents navigate project docs and follow the expected delivery workflow.
Primary Documentation Index
Start here first:
docs/README.md
Documentation Map by Task
- Product context and scope:
docs/overview.md - Architecture and runtime model:
docs/architecture.md - Repository/module layout:
docs/project-structure.md - Setup and local run/build:
docs/getting-started.md - Env/config variables:
docs/configuration.md - Code conventions:
docs/code-style.md - Renderer/Main IPC contracts:
docs/ipc-api.md - SQLite schema and statuses:
docs/data-model.md - Migration rules:
docs/migration-guidelines.md - Development process:
docs/development-workflow.md - Security requirements:
docs/security.md - PR checks:
docs/pr-checklist.md - Packaging/release:
docs/build-and-release.md
Issue Tracking with bd (beads)
IMPORTANT: This project uses bd (beads) for ALL issue tracking. Do NOT use markdown TODOs, task lists, or other tracking methods.
Why bd?
- Dependency-aware: Track blockers and relationships between issues
- Git-friendly: Dolt-powered version control with native sync
- Agent-optimized: JSON output, ready work detection, discovered-from links
- Prevents duplicate tracking systems and confusion
Quick Start
Check for ready work:
bd ready --json
Create new issues:
bd create "Issue title" --description="Detailed context" -t bug|feature|task -p 0-4 --json
bd create "Issue title" --description="What this issue is about" -p 1 --deps discovered-from:bd-123 --json
Claim and update:
bd update <id> --claim --json
bd update bd-42 --priority 1 --json
Complete work:
bd close bd-42 --reason "Completed" --json
Issue Types
bug- Something brokenfeature- New functionalitytask- Work item (tests, docs, refactoring)epic- Large feature with subtaskschore- Maintenance (dependencies, tooling)
Priorities
0- Critical (security, data loss, broken builds)1- High (major features, important bugs)2- Medium (default, nice-to-have)3- Low (polish, optimization)4- Backlog (future ideas)
Workflow for AI Agents
- Check ready work:
bd readyshows unblocked issues - Claim your task atomically:
bd update <id> --claim - Work on it: Implement, test, document
- Discover new work? Create linked issue:
bd create "Found bug" --description="Details about what was found" -p 1 --deps discovered-from:<parent-id>
- Complete:
bd close <id> --reason "Done"
Quality
- Use
--acceptanceand--designfields when creating issues - Use
--validateto check description completeness
Lifecycle
bd defer <id>/bd supersede <id>for issue managementbd stale/bd orphans/bd lintfor hygienebd human <id>to flag for human decisionsbd formula list/bd mol pour <name>for structured workflows
Auto-Sync
bd automatically syncs via Dolt:
- Each write auto-commits to Dolt history
- Remote Dolt sync is not configured in this project
- No manual export/import needed!
Important Rules
- ✅ Use bd for ALL task tracking
- ✅ Always use
--jsonflag for programmatic use - ✅ Link discovered work with
discovered-fromdependencies - ✅ Check
bd readybefore asking "what should I work on?" - ❌ Do NOT create markdown TODO lists
- ❌ Do NOT use external issue trackers
- ❌ Do NOT duplicate tracking systems
For more details, see README.md and docs/QUICKSTART.md.
Session Completion
When ending a work session, you MUST complete ALL steps below. Work is NOT complete until git push succeeds.
MANDATORY WORKFLOW:
- File issues for remaining work - Create issues for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- PUSH TO REMOTE - This is MANDATORY:
git pull --rebase git push git status # MUST show "up to date with origin" - Clean up - Clear stashes, prune remote branches
- Verify - All changes committed AND pushed
- Hand off - Provide context for next session
CRITICAL RULES:
- Work is NOT complete until
git pushsucceeds - NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds
Project-Specific Rules
These rules extend (and do not replace) the Beads workflow above.
-
Documentation-first navigation:
- Start with
docs/README.md - Use task-specific docs from
docs/*before coding
- Start with
-
Mandatory docs update policy:
- If behavior/config/schema changes, update corresponding docs in the same task
- Minimum check:
- API/IPC changes ->
docs/ipc-api.md - DB schema/migrations ->
docs/data-model.md,docs/migration-guidelines.md - Security-sensitive changes ->
docs/security.md - Build/release changes ->
docs/build-and-release.md
- API/IPC changes ->
-
Migration requirements:
- Follow
docs/migration-guidelines.md - Keep migrations additive where possible
- Preserve
updatedAttrigger behavior for SQLite tables
- Follow
-
Security requirements:
- Follow
docs/security.md - Never log secrets (mnemonic/private key/passwords)
- Validate IPC inputs in main process handlers
- Follow
-
Code style requirements:
- Follow
docs/code-style.md - Run project quality gates for changed scope:
npm run typechecknpm run lintnpm run format(if formatting changed)
- Follow
-
Source of truth:
- If docs conflict with code, code is source of truth
- Update docs immediately after resolving mismatch
-
Changelog before commit:
- Before each commit, update
src/renderer/src/pages/Changelog/index.tsx - Use
package.jsonversionas the source of truth for the target release section (for display,0.6.0-beta->0.6.0 beta) - Add short, user-facing bullet(s) describing the work completed in that commit
- Keep change bullets ordered by type:
New,Improve,Update,Fix
- Before each commit, update
-
License header for new files:
- Every new source file must include the standard Apache 2.0 header at the top, following the same format used in existing files
- Use company name
Digital Clever Solution Inc.in the copyright line
Beads Workflow Integration
This project uses beads_viewer for issue tracking. Issues are stored in .beads/ and tracked in git.
Essential Commands
# View issues (launches TUI - avoid in automated sessions)
bv
# CLI commands for agents (use these instead)
bd ready # Show issues ready to work (no blockers)
bd list --status=open # All open issues
bd show <id> # Full issue details with dependencies
bd create --title="..." --type=task --priority=2
bd update <id> --claim
bd close <id> --reason="Completed"
bd close <id1> <id2> # Close multiple issues at once
Workflow Pattern
- Start: Run
bd readyto find actionable work - Claim: Use
bd update <id> --claim - Work: Implement the task
- Complete: Use
bd close <id> - Sync: Follow standard git sync only
Key Concepts
- Dependencies: Issues can block other issues.
bd readyshows only unblocked work. - Priority: P0=critical, P1=high, P2=medium, P3=low, P4=backlog (use numbers, not words)
- Types: task, bug, feature, epic, question, docs
- Blocking:
bd dep add <issue> <depends-on>to add dependencies
Session Protocol
Before ending any session, run this checklist:
git status # Check what changed
# update changelog # Add short bullet(s) under the release matching package.json version
git add <files> # Stage code changes
git commit -m "..." # Commit code
git pull --rebase # Update branch before pushing
git push # Push to remote
Best Practices
- Check
bd readyat session start to find available work - Update status as you work (in_progress → closed)
- Create new issues with
bd createwhen you discover tasks - Use descriptive titles and set appropriate priority/type
- Finish with a clean issue state in
bdand pushed git branch