falcondeck
AGENTS.md7 starsChanged 16 days agoMITView on GitHub
FalconDeck is a monorepo for a local daemon-first agent control plane:
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,542 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository25 other files it gives its agents.
- .agents/AGENTS.mdAGENTS.md
- .agents/skills/autoreview/AGENTS.mdAGENTS.md
- .agents/skills/vercel-react-best-practices/AGENTS.mdAGENTS.md
- .agents/skills/vercel-react-native-skills/AGENTS.mdAGENTS.md
- extensions/AGENTS.mdAGENTS.md
- autoreviewSkill
- axe-ios-simulatorSkill
- desktop-mac-releaseSkill
- deslopSkill
- dopplerSkill
- github-reference-finderSkill
- goal-writerSkill
- humanizerSkill
- just-say-no-to-process-pornSkill
- mobile-testflightSkill
- ntfySkill
- publish-reportSkill
- qa-spiderSkill
- rust-best-practicesSkill
- skill-creatorSkill
- systematic-debuggingSkill
- tldrSkill
- vercel-react-best-practicesSkill
- vercel-react-native-skillsSkill
- verified-bug-campaignSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
21 rules. About 0 are common, 10 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Use codex app-server for Codex, not the MCP server path.
- Distinctive: line 22
Keep Claude on the CLI subprocess path, not the Agent SDK.
- Distinctive: line 24
Default to same-folder workflows.
- Very specific: line 25
Start shared protocol changes in crates/falcondeck-core and packages/client-core, then fan out.
- Very specific: line 49
Keep secrets and real inventory out of git.
- Very specific: line 56
Delete simulators, emulators, and Docker containers/images/volumes you created (xcrun simctl delete <udid>, docker rm/rmi/volume rm).
- Very specific: line 57
Remove temp worktrees (git worktree remove), scratch clones, /tmp build dirs, smoke-test state dirs, and one-off EAS/Xcode archives you …
- Very specific: line 58
Prefer reusing existing target/, DerivedData, and node_modules over fresh copies.
- Distinctive: line 59
Only remove artifacts you created.
- Very specific: line 60
Read docs/ before changing protocol or architecture.
- Very specific: line 61
Read docs/EXTENSIONS.md before changing extension contracts, contribution points, permissions, storage, or host behaviour.
- Very specific: line 63
Read docs/HARNESSES.md before changing harness (coding CLI) detection, version checks, upgrades, or the harness API surface.
- Very specific: line 65
Read DESIGN.md before changing shared UI, branding, or iconography.
- Very specific: line 66
Keep AGENTS.md short and operational.
- Distinctive: line 67
Prefer semantic shared UI wrappers over ad hoc utility-heavy markup.
- Distinctive: line 76
Run the repo-local autoreview on any significant change before handing off, not just headline features.
- Distinctive: line 81
Verify accepted findings against the real code path, fix in-scope issues, rerun focused checks, and rerun autoreview until clean.
- Distinctive: line 86
Keep the desktop and daemon flow solid.
- Distinctive: line 87
Keep relay protocol and retention/reconnect behavior correct.
- Distinctive: line 88
Keep remote web and mobile aligned with daemon/relay contracts.
- Distinctive: line 89
Keep the public site simple and separate from product runtime concerns.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
FalconDeck Agent Guide
Overview
FalconDeck is a monorepo for a local daemon-first agent control plane:
apps/desktop- Tauri shell around the daemonapps/mobile- paired mobile clientapps/remote-web- paired browser clientapps/site- public marketing sitepackages/client-core- shared TS protocol, types, helperspackages/ui,packages/chat-ui- shared UI primitivescrates/falcondeck-core- shared Rust protocol and typescrates/falcondeck-daemon- local daemon, agent integration, unified event stream, relay bridgecrates/falcondeck-relay- public relay with encrypted replay storage and trusted-device pairingops/ansible- deploy and server config
Core Rules
- The daemon is the product; desktop is just its shell.
- Use
codex app-serverfor Codex, not the MCP server path. - Keep Claude on the CLI subprocess path, not the Agent SDK.
- Sessions and conversation history belong to the underlying agent. Do not add a FalconDeck conversation DB.
- Default to same-folder workflows. Do not force worktrees.
- Start shared protocol changes in
crates/falcondeck-coreandpackages/client-core, then fan out.
Mobile App
- React Native 0.83 + Expo SDK 55. Entry point:
apps/mobile/src/entry.ts. - Package manager: npm (not pnpm). Always run
npm installfrom monorepo root after changing anypackage.json. react-native-nitro-modulesmust be a direct dependency (auto-linking needs it for theNitroModulespod).plugins/withLibz.jslinkslibzforreact-native-mmkv's CRC32 — do not remove.metro.config.jspins React, React Native, and React DOM resolution to the workspace root. Preserve this single-runtime setup; duplicate copies crash the mobile app.babel.config.jsmust includereact-native-unistyles/pluginwithroot: __dirname.- EAS builds:
make mobile-build(ad-hoc install link) oreas build --profile preview-testflight(TestFlight). - OTA updates:
make mobile-deploypushes JS-only changes without rebuilding. - See
docs/14-mobile-app.mdfor full build/deploy/troubleshooting reference.
Gotchas
- The relay is stateful but not the conversation source of truth. The daemon and native agent storage are. Relay replay only smooths remote reconnects.
- Pairings are short-lived onboarding state. Trusted devices are the long-lived relationship.
- Relay replay may be pruned. When history is truncated, clients must recover from a fresh daemon snapshot, not assume full replay remains.
- Relay sequence numbers must stay monotonic after pruning. Do not derive
next_seqfrom the last retained update. - The daemon is currently localhost-first.
falcondeck-daemonbinds to127.0.0.1by default. Do not document direct-hosted web product behavior unless it actually exists. - Remote and mobile access depend on daemon RPC registration. Methods like
snapshot.current,thread.detail,turn.start, and approval handlers are part of that contract; changing names or flow breaks clients. - Remote clients are clients of the daemon, not separate durable stores. Before adding remote-only persistence, check whether it belongs in the daemon or native agent storage instead.
- Production relay storage uses Postgres. File-backed relay state still exists for local, test, and simple setups.
- Keep secrets and real inventory out of git.
ops/ansible/inventory/exampleand example vars are safe; real hosts, creds, and production inventory are not.
Working Guidelines
- Packaged Mac deployment: commit, then
make desktop-install-head(builds HEAD in a clean temp worktree, installs, restarts), ormake desktop-restart(restart only).make desktop-installrefuses a dirty tree: other agents' uncommitted edits once shipped and kept the phone offline. These are synchronous one-shot commands with a health check. Never uselaunchctl submit, KeepAlive jobs, or recurring automation for a one-off restart: a leftover job previously restarted the daemon 77 times and invalidated mobile sync tokens. Do not use broadpkillon the desktop binary; MCP helpers share it. - Multiple agents often work directly on
main. Keep commits terse and scoped, commit completed work promptly, and exclude unrelated changes. - The Mac runs near-full on disk. Clean up after yourself before handing off:
- Delete simulators, emulators, and Docker containers/images/volumes you created (
xcrun simctl delete <udid>,docker rm/rmi/volume rm). Shut down booted simulators you started. - Remove temp worktrees (
git worktree remove), scratch clones,/tmpbuild dirs, smoke-test state dirs, and one-off EAS/Xcode archives you produced. - Prefer reusing existing
target/,DerivedData, andnode_modulesover fresh copies; don't create extra cargo target dirs or per-worktreenpm installs unless needed, and delete them when done. - Only remove artifacts you created. Never prune shared caches, other agents' worktrees, or the user's simulators/containers without asking.
- Delete simulators, emulators, and Docker containers/images/volumes you created (
- Read
docs/before changing protocol or architecture. - Read
docs/EXTENSIONS.mdbefore changing extension contracts, contribution points, permissions, storage, or host behaviour. - Read
docs/HARNESSES.mdbefore changing harness (coding CLI) detection, version checks, upgrades, or the harness API surface. - Read
DESIGN.mdbefore changing shared UI, branding, or iconography. - Keep
AGENTS.mdshort and operational; put rationale indocs/. - Prefer semantic shared UI wrappers over ad hoc utility-heavy markup.
- Preserve hosting defaults:
connect.falcondeck.com- relayapp.falcondeck.com- pairing landing (same public site; opens the iOS app)falcondeck.com- public site- You may use Ansible and SSH on the production relay/app host for deployment, debugging, and verification when needed.
Code Review
- Run the repo-local autoreview on any significant change before handing off, not just headline features. Tests and typecheck alone are not a review.
- Changes to core functionality always warrant a review: the daemon event stream and RPC surface, relay protocol/replay/pairing,
client-coresync/streaming/normalization, approval and turn flow, and storage or persistence behavior on any client. - Also treat new features, protocol or API changes, cross-package refactors, migrations, and release work as significant.
- Skipping is fine only for trivial mechanical edits (copy, comments, isolated styling) — say so in the handoff.
- For uncommitted work, run
.agents/skills/autoreview/scripts/autoreview --mode local; for work already committed tomain, run--mode commit --commit <sha>per commit. - Verify accepted findings against the real code path, fix in-scope issues, rerun focused checks, and rerun autoreview until clean.
- Record the autoreview command and result in the handoff when you skip it or when it finds follow-up work.
Priorities
- Keep the desktop and daemon flow solid.
- Keep relay protocol and retention/reconnect behavior correct.
- Keep remote web and mobile aligned with daemon/relay contracts.
- Keep the public site simple and separate from product runtime concerns.
- Expand Claude support without regressing the Codex path.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

