put.io frontend development
Apply shared put.io frontend engineering defaults after the target repository's own guidance and code precedent.
Start
- Read every filesystem
AGENTS.mdthat applies from the target repo root to the files being changed, including untracked files. Then inventory tracked auxiliary guidance withgit ls-files '*AGENTS.md' '*SKILL.md'. - Discover tracked project-local
SKILL.mdfiles under.agents/skills/,.claude/skills/, orskills/. Read the frontmatter and apply only the task-matching skills; ignore dependency and vendored trees. - Read the
README.mdsections, docs, and.patterns/entries that cover the area being changed. Target-repo guidance and skills override this shared skill. - Identify the repo kind, stack, verify entrypoint, delivery target, and runtime proof surface.
- Select only the references required for the task.
Reference map
- Feature code, parsing, state, errors, components, and testing: frontend defaults
- Capturing a non-obvious repo convention: pattern template
- README, CONTRIBUTING, SECURITY, and agent-facing docs: top-level docs
- CI, verify, publishing, deployment, and release shape: delivery model
- Application-specific delivery: application defaults
- TypeScript package and app setup: TypeScript defaults
- Local development secrets and CI credential boundaries: environment setup
- Secret-bearing release, signing, publishing, and deployment: release security
- Browser, native, TV, emulator, simulator, and device proof: test harness
- Shared test-account browser authorization: test harness pattern
- CLI-backed harness discovery, auth, reads, and writes: CLI harness contract
Markdown links navigate this skill bundle. Other paths shown in the references,
such as .patterns/state-machines.md or .github/pull_request_template.md,
name files to create or inspect in the target repository.
Shared defaults
- Parse external input at the boundary and derive types from the validated contract.
- Model bug-sensitive flows with explicit states and exhaustive transitions.
- Keep expected errors typed and actionable; bound unexpected failures without blanking unrelated UI.
- Keep effects at adapters and leaves so render trees remain pure.
- Avoid type escape hatches that weaken the contract.
- Accept usernames, passwords, and current one-time-password codes only on an official put.io website. Keep the long-lived TOTP seed inside the authorized secret provider that generates the current code. CLI, mobile, TV, extension, harness, and other clients must delegate account authorization to the website through OAuth or device-link flows and handle only the resulting codes or tokens.
- Let repo-local
.patterns/and established code override shared defaults. - Keep verification logic in repo-owned commands that CI calls. Preserve an
established task graph; use one
verifyentrypoint when creating a new lane. - Deliver from trusted
mainor validated release refs only after verification. - Finish in-scope edits, checks, and fixes without pausing for approval; ask before anything destructive, paid, public, or outside the task, such as deploys, publishes, secret or provider changes, external writes, and force-pushes.
- Exercise user-visible behavior in the real browser, app, simulator, emulator, or device surface when one exists.
- Before a proof command launches a runtime, install cleanup and record whether it started that exact target. On every exit, stop only targets it started and confirm their absence; preserve pre-existing targets.
Workflow
- Inspect the current implementation, docs, scripts, workflows, and proof surface before proposing a shape.
- Apply the smallest relevant shared defaults and preserve working repo conventions unless evidence shows they are wrong.
- Record non-obvious code conventions in
.patterns/<topic>.md; keep user, contributor, distribution, and security documentation in their canonical homes. - Keep workflow orchestration thin and put repeatable build, verify, deploy, and smoke logic behind repo-owned commands.
- Select the owner's documented checks for the affected behavior and its dependents. Run the full canonical gate when owner policy requires it, shared inputs changed, or focused coverage is uncertain. Preserve separate installed-package, downstream-consumer, browser and device proof where those boundaries matter; command discovery does not authorize live actions. Fix failures and refresh affected proof. Reuse passing proof while its source, inputs and environment remain valid; a new turn or handoff alone does not require another run. Name unavailable proof and its exact blocker.
- Report changed behavior, verification, proof artifacts, risks, and remaining gaps.
Boundaries
- SDK repositories belong to the dedicated SDK development workflow, including their docs, verification, release, and delivery shape.
- Operating the
putioCLI as a files, downloads, transfers, auth, or storage consumer belongs to the CLI's consumer guidance. Frontend harnesses use the installed CLI through the CLI harness contract. - Repository policy, generic GitHub Actions hardening, build-tool migrations, bootability repair, and independent code review are outside this skill; it supplies put.io frontend domain guidance to whichever workflow does that work.
- Keep private workspace inventory, machine-specific facts, credentials, and private support context out of this public skill.