tapflow AGENTS.md

Repository instructions for tapflow, an open-source tool that lets a team test iOS and Android apps in a web browser using a Mac and a real simulator.

In plain words
What is it for?
Use them when changing tapflow, especially its browser-based app testing, build-upload process, simulator access, or optional AI-agent controls.
Why use it?
They give coding agents shared rules and explain the main manual-testing workflow, so contributors do not have to guess how the project is intended to work.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/jo-duchan/tapflow/agents-md
Clone the repo
git clone --depth 1 https://github.com/jo-duchan/tapflow

Made for: Codex, OpenCode.

Per session 4,896 This file is loaded in full into every session.
When invoked 4,896 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.04896 $0.04896
Opus 5 $0.02448 $0.02448
Sonnet 5 $0.00979 $0.00979
Haiku 4.5 $0.00490 $0.00490

Measured today against content hash a3ae91c76ac7, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

tapflow AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 296 lines

How it starts

The opening of the file, as written. The whole thing — 296 lines — stays where its author put it; the contents beside it link to each section on GitHub.

tapflow — AGENTS.md (Common Rules)

Package-specific rules are referenced via INDEX.md.


WHAT

tapflow is an open-source self-hosted library that lets the entire team — PO, PM, designers, backend engineers, and QA — test iOS/Android apps directly from a browser. It uses the Mac you already own — no external cloud dependency.

Core value

Remove friction. Anyone on the team can open a browser and test the app on a real simulator, without Xcode, without device setup, without accounts on external services.

Two testing modes

  • Manual testing (primary): CI uploads a build → team reviews in the browser. This is tapflow's main use case.
  • AI Agent via MCP (experimental): An LLM agent controls the simulator automatically using @tapflowio/mcp-server. This is a separate, opt-in feature — it does not affect the manual testing path.

When designing features or writing docs, default to the manual testing perspective. The AI Agent path is additive, not a replacement.

WHY

  • Appetize / BrowserStack are expensive and send app data outside your network.
  • Reuses infrastructure (Mac) the team already owns.
  • Fully open-source and customizable.

For the product direction and philosophy behind these — Manual First, Flow Capture as the moat, AI as an additive harness — see VISION.md.


Core Principles

  • Evidence-based: verify a root cause with code, logs, or tests before fixing — no guess-driven changes.
  • Minimal changes: stay within the requested scope; follow the file's existing conventions. Scope is decided by what a reviewer has to hold in their head, not by which file a line sits in.
  • Verifiable goal: know how success will be measured before starting (a reproducing test, same tests passing after a refactor, etc.).
  • Stop before risky actions — get user confirmation before any hard-to-reverse operation (git push --force, git reset --hard, sending messages to external systems, DB drops, etc.). Specifically:
    • Only create commits or PRs when the user explicitly requests it.
    • Do not merge PRs. Always leave merging to the user — even with --admin. Create the PR and stop. Enforced by the PreToolUse hook .claude/hooks/pr-merge-guard.sh, which blocks gh pr merge and gh pr review in command position. It does not cover the gh api and git plumbing equivalents: same threat model, a cooperative agent rather than an adversary.
    • Avoid breaking changes. If unavoidable, report to the user and get approval before proceeding. Breaking change scope: public API / interface signature changes, DB schema changes, WebSocket message protocol changes, CLI command / flag changes.

Read the full file on GitHub · 296 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed · +17 lines · +335 tokens per session a3ae91c76ac7
  2. 2d ago First seen · 279 lines · 4,561 tokens per session scan A 7f7f29660e65

Subscribe to this mod's changes

tapflow AGENTS.md is an instructions file published in the GitHub repository jo-duchan/tapflow (543 stars, last pushed yesterday), licensed MIT. It adds 4,896 tokens to every session, about $0.0245 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.