The workbench
Sterling edits files and runs checks in a local copy. Unsaved or uncommitted work is not automatically on GitHub or live.
A reusable map for vibe coding and agent-built apps: identify the system, scope one change, prove it safely, then release only the approved code.
Saving the recipe is not serving the meal. First inventory the exact project, repository and branch, hosting account, frontend, backend, database, identity/login, external services and deployment route. Some apps share identity or services; separate URLs do not establish isolation.
Sterling edits files and runs checks in a local copy. Unsaved or uncommitted work is not automatically on GitHub or live.
Branches, exact revisions, review requests and CI results. Not the beta runtime. Not the customer database.
Record the actual repository and its owner; do not assume every project has one connected.
Frontend: screens in the browser.
Backend/API: server logic.
Database: saved customer records.
Establish an authorized isolated rehearsal environment if one does not exist. Local development and hosted staging are different layers. Test the same product in isolation. Use approved synthetic data and safe provider settings. A separate frontend alone does not prove isolation; check its API and database connections.
Deploy validated code with production configuration. Preserve customer records. Do not copy the beta database into production.
Read down the center. Amber decisions stop the release when evidence or approval is missing. Dashed return paths mean repair and repeat—not skip ahead.
Confirm the exact app, repository, branch, hosting account and service/data boundaries. Write what should happen, what must not break, and what proof will count. Assign one writer per file/worktree; specialists receive disjoint scope and return evidence for review. Reconcile the latest source with live-only features before editing an old copy.
Keep the change off main. Commit gives the files an exact revision ID; push saves that revision to GitHub. Open a pull request so the change and evidence can be reviewed.
Build, tests and safety checks must pass on the candidate. CI proves only the checks it ran—not every customer journey or a live deployment.
Use the project’s approved development/staging path; explicitly deploy the frontend and any changed backend to the isolated beta or staging environment. If no safe test environment exists, establish it under separate scope before continuing. Record code revision, build/deployment identities and safe API/database bindings. GitHub is not hosting this rehearsal.
Exercise the requested behavior, failure cases, mobile/desktop and saved-state recovery with authorized test data. Check affected existing features and provider behavior. A green shell or screenshot is insufficient.
Record the exact tested revision and artifacts, acceptance results, environment plan and rollback plan. This becomes the approved revision only when Brad approves it. “The latest code” is not a precise release identity.
Beta approval alone is not production approval. State frontend/backend scope and any separately approved migration or provider action.
Merge the reviewed pull request; preserve its lineage. Merge is not the same as deployment. Inspect the actual pipeline first. Some repositories deploy automatically on merge: if so, configure or obtain the approved hold/release gate before merging, so final checks and fresh backup precede the production rollout. Never discover an auto-deploy after merging.
Check that the merged build is the tested code, not a different mix of changes. Rerun required checks; verify production targets and compatibility. Capture a fresh production backup, prove isolated restore and customer preservation, and confirm the rollback owner and handles.
Backup is a recovery safeguard, not permission to replace live data. An old backup receipt is not today's protection. Recheck freshness immediately before release.
Publish the same validated code to the correct production services using production configuration. Record both deployment identities; coordinate backend/frontend order for compatibility. If the backend is unchanged, verify its existing compatible version rather than pretending it was redeployed.
A required schema migration is a separate reviewed and approved operation—not a beta-data promotion. Stop if its backup, compatibility or rollback plan is missing.
Read back frontend/backend identities and environment connections. Run the approved live smoke journeys, check logs and preservation evidence, and confirm the requested behavior. Monitor agreed signals; do not infer success from HTTP 200 alone.
Illustrative scenarios—not claims that these features or fixes have been implemented.
For a counting scene in the agreed range, the visible objects and correct answer must agree exactly. A wrong answer must not mark the question correct; feedback should invite another attempt. Buttons must fit the phone screen and be usable without reading tiny labels. This is a proposed test, not a claim that a Math Ballpark test passed.
A side-by-side beta walkthrough, named rule source and version, expected-versus-actual examples, a baseball regression result, exact revision, release scope and rollback plan. Rule ambiguity is a clarification gate—not a reason to invent a rule.
Use a separately authorized, narrowly scoped emergency plan with known-good rollback and focused evidence. Do not silently bypass approval, edit an unknown live artifact, or reset customer data to make the screen look correct.
Defines the goal, constraints and expected behavior. Reviews the actual change and explicitly approves release scope. A request to build a guide or a prototype is not approval to mutate a live app.
Confirms project identity, plans bounded changes, coordinates specialists, integrates their evidence and owns the release checklist. Separate implementation, review and approval; do not let a green agent summary replace executed tests.
Receive exact repository/branch, allowed files, acceptance tests and forbidden actions. One writer owns each file/worktree at a time. Independent reviewers check code, behavior and regressions; only the designated release manager deploys within approval.
This is a dated summary of the read-only audit. The process below is the intended release standard—not a claim that these gates have been completed.
August 30 revision dafd0fc is in draft PR #4. Still unmerged and undeployed in this snapshot. GitHub main is an older baseline.
beta.dugoutready.pages.dev matches the August 6 frontend at dcf1afe. That does not prove the entire backend release.
app.dugoutready.com does not match the inspected candidate frontend. The audited fixes are not proven there. A loading page is not full functional acceptance.
The remembered beta.dugoutready.com failed DNS in the September 13 audit. Use the Pages beta address above. Separate beta API/database identities are supported by configuration and history; database bindings were not freshly read from the provider. This guide does not reconcile or change the actual app.
Source basis: September 13 history.md (chronology and ownership) and technical.md (GitHub/HTTP/frontend-identity audit), retained privately with the status report. Those reports were read to prepare this guide; their raw contents and customer/credential details are not published here.
Candidate PR #4 ↗ · August 30 CI evidence ↗ Private GitHub access required.
Dugout-specific ownership: Sterling 2 was designated sole writer on August 30; Sterling 1 remains read-only historical assistance unless Brad reverses it. This is not a universal ownership claim about every app. No live status polling, deployment controls, entered data or storage are used by this guide. It changes documentation only. It does not repair the app, establish current database bindings, authorize a release or certify launch readiness.
You describe the outcome. Sterling turns it into small, testable changes, documents the evidence and asks you for the decisions that matter.
Download the complete methodology (.md) ↓Read-only educational guidance. No entered data, application controls or new browser storage.
Brad does not write code, run commands or diagnose a stack trace. Speak the whole vision in ordinary language. Sterling preserves it, organizes it into a product goal, smallest useful release, capability groups and ordered stories, and returns consequential questions. Brad owns intent, priorities, acceptable costs, privacy/business tradeoffs and release authorization. Sterling owns execution, traceability and truthful evidence; qualified specialists own technical judgments outside the agent’s assurance.
This standard applies to all our apps. It does not mean all this infrastructure already exists. For each app, inventory first and mark each control implemented, missing, not verified or not applicable with a reason. Establish missing infrastructure only under its own approved scope. The Visual Workflow remains the original educational map and dated case study; this tab is the fuller, risk-tailored operating policy. Neither is a live dashboard or a certification.
Before a story starts, Sterling records the original voice wording, confirmed interpretation, users/roles, scope and non-goals, examples, forbidden outcomes, data/API contracts, dependencies, acceptance test IDs, risk and release authority. Keep a full-vision backlog so finishing a slice cannot silently erase later capabilities. A story is ready when consequential ambiguity is resolved, the environment and owner are known and the acceptance oracle is defined. It is done for its stated boundary only when implementation, relevant tests, review, documentation and acceptance evidence agree on the same revision. Local completion is not launch completion.
Repository-native requirements, feature/test traceability, architecture and operations documents are the governing record. Update them with feature, API, schema, configuration and release changes; keep an approved distribution mirror tied to the reviewed revision when required by the project. Sterling provides readable links and the exact decision sought, not a request that Brad inspect code.
Give each specialist an exact repository/worktree/branch, allowed files, acceptance criteria and forbidden actions. Use one writer per owned surface, one integrator for the candidate, and one deployment lane per shared environment. Read-only review can run in parallel. A saved task list is not active execution: report verified complete, actively executing, queued and blocked separately. An interruption packet retains source identity, changed files, actual test results, unresolved decisions and the first deterministic resume action.
Recommended implementation policy, risk-tailored per change—not a checklist mandated by any one source.
Owner: Brad confirms; Sterling records
Evidence to keep: Confirmed requirement, decision log and acceptance examples
Stop if: Consequential ambiguity unresolved.
Founder speaks; agent structures; founder corrects. Capture the business outcome, users, what they can do, what must never happen, examples, timing, budget and what is explicitly out of scope. Preserve the original wording or a consented, short-lived transcript as the intake source; do not keep unnecessary voice recordings or secrets.
Create one decision log with: ID | original statement | proposed interpretation | confirmed/assumed/open/superseded | decision owner | revision/date. Confirm proper nouns, quantities, negations and permissions when a transcription ambiguity changes behavior, cost, integration or privacy. “I like the design” does not authorize production deployment.
Turn each confirmed requirement into observable acceptance criteria: Given [starting state], when [action], then [observable result]. Include unhappy paths, forbidden results and who can access which records. Ask only consequential questions now; keep later choices in an open-decision list.
Example, not a real customer record: “A coach can save a practice plan.” Clarify whether another coach may view it, whether saving requires an internet connection, and what a duplicate click does. Acceptance: a signed-in coach saves once, reloads and sees the plan; another unauthorized account cannot read or edit it; a failed save displays an honest retryable error; retry does not create a duplicate.
Maintain bidirectional traceability: REQ → acceptance criterion → risk/control → test ID → PR/commit → artifact/deployment → founder acceptance. A changed requirement invalidates affected tests and approvals, not necessarily every unrelated check. This adapts SSDF's risk-oriented planning and Microsoft's ADR discipline into founder-readable evidence.[2][7]
Owner: Sterling inventories; Brad owns recovery tradeoffs
Evidence to keep: Source/environment map, characterization and restore evidence
Stop if: Unknown production identity or unprotected customer state.
Before changing an existing production app, have the agent inventory and reconcile local worktree, GitHub repository/branch, CI configuration, beta hosting, production hosting, backend services, identity system and customer database. GitHub source history is not beta hosting and is not a backup of the live customer database. Do not assume a preview URL has separate data or secrets.
Record exact provider/account/project/environment/database IDs, deployed revision, configuration version, migration state and current service health. If the running app differs from source history, stop the proposed cutover and reconcile it; do not redeploy an older source version over live-only functionality. Establish characterization tests for behavior customers already rely on before refactoring.
For state-changing releases, define a recovery plan before mutation: what is backed up (database, files, configuration, identity dependencies), restore location, encryption/access, retention, dependency order, allowed data loss and recovery time. RPO means maximum acceptable data loss measured in time; RTO means maximum acceptable recovery duration. Microsoft recommends regular restore testing, not simply successful backup-job receipts.[19]
Restore into an isolated environment and check schema, representative application behavior and data-integrity invariants. Keep production writes out of that environment. Record achieved drill times and limits; a nonproduction drill does not prove real production failover timing. Refresh or verify a suitably recent recovery point at the approved cutover; for high-risk migrations, prevent or reconcile writes occurring after the snapshot. Never copy beta customer data over production.
Owner: Sterling proposes; qualified specialist reviews sensitive controls
Evidence to keep: Data-flow diagram, ADRs, selected controls and privacy decisions
Stop if: Unresolved access, sensitive data or irreversible architecture decision.
Draw one system/data-flow diagram showing trust boundaries, data stores, external providers, scheduled jobs and deployment ownership. List threats: unauthorized reads/writes, tenant crossover, impersonation, unsafe input, secret exposure, replay, duplicates, partial failure and dependency compromise. Select applicable ASVS controls and record exceptions with owner/rationale; legal/privacy duties need qualified advice where relevant.[2][3]
Write short ADRs only for decisions affecting structure, important quality attributes or reversibility: authentication approach, tenant/data isolation, build versus buy, service/provider boundary, migration strategy, consistency, backup and recovery. Each ADR includes context, options, decision, tradeoffs, consequences and revisit trigger. That scope follows Microsoft's ADR guidance.[7]
For privacy, explicitly choose collected fields, purpose, authorized roles, retention/deletion, logs, subprocessors and whether data leaves the system for an AI provider. Do not use real customer records in agent prompts or testing by default. A noncoding founder approves business/privacy tradeoffs; a qualified engineer validates sensitive technical controls.
Owner: Sterling and bounded specialists build
Evidence to keep: Small vertical slice, branch/PR and red-green-refactor evidence
Stop if: Scope expansion or overlapping writers.
Build a thin useful path through interface, permissions, persistence and tests rather than completing every screen before the backend. DORA recommends small testable batches to shorten feedback loops, and frequent integration rather than long-lived divergent feature branches.[11][12]
Use a short-lived branch and a small PR. For multiple agents, use separate branches/worktrees with explicit task/file ownership. One integrator owns the target branch; one controlled deployment lane owns each shared environment. Do not let concurrent agents edit the same worktree, migration sequence or production resource without coordination. Review the merged candidate, not merely each isolated branch.
For new deterministic behavior and bug fixes, use red → green → refactor: demonstrate the expected failing behavior, implement the smallest change, then simplify while tests remain green. Google’s 2026 TDD guidance describes that cycle and explicitly says TDD is not a silver bullet.[24] For legacy code, characterize existing behavior first; for exploration, label the prototype nonproduction and add acceptance evidence before release.
Owner: Sterling executes; reviewer challenges the oracle
Evidence to keep: Risk/test/branch ledgers with real results and limitations
Stop if: Required risk path failed, blocked or not tested.
Google’s test-size terminology distinguishes small/isolated, medium/local integration, and large/system tests. Its 2010 resource/time limits are historical conventions, not values to copy blindly.[5] The pyramid is a heuristic; Google's newer SMURF guidance balances speed, maintainability, utilization, reliability and fidelity, not a fixed percentage distribution.[6]
| Test layer / technique | What to exercise | Where it stops |
|---|---|---|
| Unit / small | Business rules, validation, permissions logic, boundary values, date/time rules, deterministic transforms | Mocks and isolated functions cannot prove provider or database behavior. |
| Integration / medium | Real test database, repository queries, transactions, migrations, service wiring | Local infrastructure differs from deployed configuration. |
| Contract | Consumer expectations against provider API/message contracts; error shapes and version compatibility | Pact verifies agreed interactions, not every provider behavior or live availability.[21] |
| End-to-end | A few critical real user journeys: sign in, authorized operation, persistence after reload, forbidden access, recovery from a failed operation | More costly and less isolated; avoid duplicating every unit-level case through the browser.[5][6] |
| Property-based | Generated inputs within a declared domain; invariants such as idempotency, conservation, ordering, round-trip preservation | Hypothesis samples inputs; “should hold for all inputs” is an asserted property, not proof every input was executed.[20] |
| Combinatorial | Explicit factors/valid constraints: role × record owner × status × retry state × network outcome; pairwise or higher-strength coverage chosen for risk | NIST's interaction research motivates efficient combinations. Covering selected t-way interactions does not prove all permutations, sequences or unknown factors.[17] |
| Mutation | Selected critical rule code; inject changes and confirm tests fail | Stryker measures tests' sensitivity to mutations, not overall correctness. Review survivors; equivalent/unreachable mutations and cost require judgment.[22] |
| Security / accessibility / resilience | Selected ASVS controls, manual keyboard/screen-reader/zoom review plus automation; load, timeouts, fault injection and restore drills relevant to the change | Neither scanners nor synthetic tests establish complete compliance or production readiness alone.[3][4][19] |
For concurrency, explicitly test double submit, concurrent edits, stale versions, transaction conflicts, duplicate/out-of-order jobs or webhooks, retry after timeout, crash between write and acknowledgement, partial external success, and eventual reconciliation where the architecture permits those failures. Design idempotency keys, uniqueness constraints, optimistic locking or transactions as appropriate; do not promise “exactly once” merely because a queue supports retries. These are proposed risk scenarios, not a blanket requirement to use every mechanism.
Use an independently specified oracle: expected behavior comes from the requirement and invariant, not a copy of the implementation. Record seed/failing example for generated tests. A green test proving the wrong expectation is still wrong. Coverage and mutation percentages are diagnostics—not a numeric launch certificate.
Owner: Reviewer challenges; integrator enforces
Evidence to keep: Resolved findings, exact candidate and required CI evidence
Stop if: Sensitive review missing or intended tests skipped.
Give a reviewing agent the requirement, diff, architecture/risk context and test evidence, and ask it to find omissions, unsafe assumptions and insufficient tests. Prefer read-only review and evidence-backed findings; the author resolves findings and records dispositions. A separate agent or model helps challenge assumptions but does not establish statistical independence or qualified human assurance. Shared prompts, models and context can share blind spots.
GitHub explicitly warns that Copilot can miss problems and produce false positives or insecure suggestions, and says its review should supplement human review.[9] The guide should not imply Brad must learn to code: Brad makes product and release decisions, while a qualified human engineer handles technical review of sensitive security, payments, destructive migrations, regulated/child data or unclear architecture. If such review is unavailable, narrow or defer that release instead of calling agent approval equivalent.
Recommended CI pipeline:
GitHub protected branches can require PR review, status checks and freshness of approvals. Its “passing” status-check rule accepts successful, skipped or neutral states; implement an explicit final verification job that fails if an intended required check never ran.[23] Confirm plan and repository eligibility before relying on environment approval gates. Listing several required reviewers means one approval can be sufficient, and self-review prevention is an explicit setting.[10]
DORA recommends tests before and after merging and authoritative, repeatable build packages used downstream.[12] If merge changes the candidate, rerun affected checks and bind approval to the resulting revision. If merging triggers production automatically, place the release gate before merge; otherwise a later approval is theater.
Owner: Brad accepts product and authorizes release separately
Evidence to keep: Clickable preview and scoped approval for an exact revision
Stop if: Missing authority or serious unresolved blocker.
Show Brad a clickable preview, short scenario checklist and evidence scorecard. Ask two separate questions:
Aesthetic acceptance is not technical verification; technical verification is not release permission. Founder approval does not waive unresolved security or data-loss blockers.
Before promotion, lock source/artifact/configuration/migration identifiers; verify recovery readiness and production bindings. Use progressive exposure or a bounded canary when meaningful for the architecture. SRE defines a canary as a partial, time-limited change plus evaluation, and Microsoft calls for health checks and immediate halt/recovery when problems are detected.[13][8] A preview URL is not a canary, and a low-traffic app may not provide enough statistical evidence; use a controlled rollout with explicit synthetic/business checks and state that limitation.
Owner: Authorized release manager verifies
Evidence to keep: Provider receipt plus actual user/API/persistence outcome
Stop if: Only CLI, screenshot or HTTP success without boundary proof.
The release receipt should bind: approved revision → artifact → provider account/project → deployment ID/status → environment bindings/config → production hostname → migration version → verification timestamp.
Read the provider's authoritative deployment state, then exercise the actual production URL and critical operation. Verify authentication/authorization, persisted read-back, relevant integration outcome and logs/metrics. A CLI exit code, HTTP 200, screenshot or green CI badge alone is not end-to-end proof. Distinguish implemented locally / CI verified / staged / founder accepted / deployed / live verified / recovery verified.
Code rollback, feature disabling, database restore and business compensation are different operations. A previous app version may not understand a new schema, and reverting code cannot undo a sent email, charged payment or deleted record. Prefer backward-compatible expand/migrate/contract changes when feasible; retain both-version compatibility during rollback windows. Microsoft explicitly warns that stateful rollbacks are complex.[8] Define whether the safe response is disable, roll back, roll forward, restore or compensate, who may execute it, and what new writes could be lost.
Owner: Named operations owner responds
Evidence to keep: Health checks, incident runbook and owned maintenance
Stop if: No accountable detection, containment or recovery path.
Name an owner and reachable incident contact; an agent process is not an on-call organization. Set service objectives that reflect business needs, and alert on actionable symptoms. SRE's four golden signals are latency, traffic, errors and saturation.[16] Add domain signals such as failed saves, duplicate jobs or authorization denials when they reveal meaningful risk; minimize sensitive log content and control retention/access.
Incident playbook: detect → assess impact → contain risky activity → mitigate/recover → verify customer outcomes → communicate → preserve evidence → investigate → assign prevention work. Keep a timestamped record and avoid multiple uncoordinated responders changing the same system. SRE postmortems document impact, mitigation, contributing causes and preventive follow-up, using a blameless approach.[15]
Maintain dependency/security updates, secret/access reviews, restore drills, regression tests, accessibility checks on changed flows, provider/API compatibility, operating cost limits and retirement of obsolete flags/resources. Set cadence by risk and ownership, not “run every test every hour.” Review recurring incidents and test flakiness; turn real defects into regression tests. Stop feature release when a relevant critical gate is red; fix or narrow scope rather than conceal skipped tests.
This is our proposed execution contract, not an external standard. Use it with the risk-shaped test portfolio in the operating loop above. It covers a static screen as well as an app with APIs, but marks genuinely absent boundaries N/A rather than inventing them.
CAS means “save only if the server still has the revision I edited.” The version check and write must be atomic at the database boundary. A read followed by an unconditional write is not conflict-safe. Test two devices editing the same starting version: one accepted write; the stale write is rejected or explicitly reconciled without overwriting newer work. Cover late responses arriving after newer edits, account/team changes, offline drafts, deletion tombstones, duplicate submissions, and transaction rollback where applicable. Never clear a newer local draft because an older save returned. If the backend lacks an atomic precondition, preserve the draft separately and expose the conflict; do not call it synchronized. These are recommended risk scenarios, not claims that Math Ballpark or Dugout implements CAS today.
Illustrative only — proposed behavior and tests, not completed features or real customer data.
Voice: “Let a child count baseballs, choose an answer and try again if it’s wrong.”
Confirm: Sterling asks for the learner level, allowed number range, what “try again” means and whether progress must persist. Do not infer a curriculum, reward system or child-data permission from this sentence.
Small vertical slice: one playable counting scene → answer selection → correct/wrong feedback → return to the next question. A skeleton means this smallest honest end-to-end path, not a polished shell with fake save success. If persistence is out of this slice, say so visibly; if required, include real storage and reload proof.
Acceptance: Given a scene in the confirmed range, when the learner chooses an answer, the visible count and independently computed correct answer agree. A wrong answer never advances the score; a correct answer advances once, including after repeated clicks. Touch and keyboard controls fit a phone; reduced motion remains usable. Existing modes and saved progress remain intact.
Sterling’s proof: deterministic boundary examples, generated invariants over the declared range, an independently specified answer oracle, real browser correct/wrong/retry journey and regression evidence. Brad watches the preview and decides whether the instructions and feedback make sense. A qualified educator’s suitability review is separate from mathematical consistency.
Voice: “A coach can save a practice plan and come back to it on another device.”
Confirm: whose team can view/edit it, offline expectations, conflict handling and existing plan/history preservation. “Another device” does not authorize a new shared-login architecture.
Acceptance: Given an authorized synthetic coach, saving once then reloading on another authenticated device shows the same plan. An unauthorized team cannot read or edit it. A failed save displays an honest recoverable error; retry does not duplicate the plan. Two edits from one version cannot silently overwrite each other. A late response cannot erase a newer draft. Existing team membership, rosters, games, plans and history survive the change.
Sterling’s proof: unit permission/rule tests, real isolated database/API tests, response-contract checks, two browser contexts for the stale-save race, and named end-to-end save → reload → other-device → forbidden-team journeys. Run the change against representative legacy state, not just an empty database. Live verification uses only approved synthetic records and private test-inbox configuration. Brad approves product behavior and separately the exact production cutover; no customer database is replaced by beta data.
| State | What Sterling can honestly claim |
|---|---|
| Implemented locally | Files exist in a working copy; not necessarily committed, shared or deployed. |
| Committed / pushed | An exact Git revision exists / is on the remote. No hosting claim. |
| CI verified | Named checks actually ran on this candidate; skipped required tests remain blockers. |
| Staged / beta verified | The identified candidate runs in a verified isolated rehearsal and named journeys passed there. |
| Founder accepted | Brad accepted product scenarios; this is not production permission. |
| Release authorized | Brad authorized exact target, revision, data/config changes, exposure, cost and recovery scope. |
| Deployed | The provider reports an identified deployment. Functionality is not yet implied. |
| Live verified | Named production user/provider boundaries were exercised and read back at a recorded time. |
| Recovery verified | A specified restore/recovery exercise passed, with measured limits—not unlimited protection. |
A release receipt includes requirement and risk coverage, test commands/results, candidate/artifact/configuration/migration IDs, reviewer findings, preview, provider target, backup/restore evidence, unresolved noncritical risks and the precise approval sought. Keep sensitive environment identifiers in the private packet, not on this educational page.
Record risk ID | requirement | failure/impact | likelihood rationale | control/test | result | residual risk | accountable owner | review trigger. Block on serious security exposure, potential silent data loss, unclear target, missing required evidence or absent release authority. Brad may accept explained noncritical business risks; he is not asked to certify unfamiliar security controls. Independent AI review is useful challenge, not equivalent to qualified human security review. Narrow or defer a sensitive release if that review is unavailable.
Preserve whole customer teams and their related records, not just login accounts. Characterize live-only behavior before refactoring. Restore a backup into isolation, verify referential integrity and representative workflows, then refresh protection at the approved cutover. Coordinate or reconcile writes after the snapshot. Favor expand → migrate → contract with old/new version compatibility during the rollback window. Code rollback, database restore, feature disable and business compensation are different actions. A restore that discards newer customer activity requires a separate explicit decision; a sent email or payment is not undone by reverting Git.
| Founder decides | Agent/engineer supplies |
|---|---|
| Which user problem and smallest valuable release? | Plain-language alternatives, prototype, scope and non-goals. |
| Who may see/change which information? | Role/data diagram, privacy implications and tested access scenarios. |
| Which providers, recurring costs and data-sharing tradeoffs are acceptable? | ADR with options, explicit assumptions and operating burden. |
| How much downtime or lost recent work is tolerable? | RTO/RPO choices, actual restore evidence and limitations. |
| Does the preview meet acceptance criteria? | Clickable scenario demonstration tied to a fixed revision. |
| Is this production change authorized now? | Exact target/revision, risks, exposure, cost and recovery packet. |
| Which remaining noncritical risks are accepted or deferred? | Named risk, impact, mitigation, owner and review trigger. |
Do not ask Brad to approve a vague “architecture/testing/deploy everything” bundle. When technical competence is needed, the decision is to obtain qualified review—not to make the founder rubber-stamp unfamiliar code.
Proposed scale per row: 0 = absent/unknown; 1 = documented only; 2 = executed in representative nonproduction; 3 = verified at the relevant live boundary or realistic recovery exercise. Mark N/A only with a reason. Keep the artifact link, exact revision/environment, timestamp, owner and limitations beside every score. Do not sum these into a percentage of safety. A level 3 statement proves only the boundary actually exercised; requirement confirmation uses decision receipts rather than runtime tests.
| Dimension | Minimum evidence for a relevant release | Blocking condition |
|---|---|---|
| Intent / acceptance | Confirmed requirements and example outcomes; coverage links | Consequential ambiguity or missing critical requirement. |
| System identity | Source/CI/provider/environment/data map | Wrong or unresolved account, revision or production binding. |
| Behavior | Real command/results and critical user journey | Critical failed assertion; required test skipped or stale. |
| Security / privacy | Applicable control IDs, negative access tests and qualified review where needed | Known serious exploit, tenant leak, exposed secret or unapproved data use. |
| Accessibility | Relevant automated and human checks; stated evaluation scope | Agreed critical user journey inaccessible; unsupported conformance claim. |
| Data / recovery | Recovery point, isolated restore proof, migration compatibility, RPO/RTO limits | Irreversible change without credible approved recovery/compensation. |
| Review / lineage | Findings resolved or explicitly deferred; candidate tied to approval | Unreviewed sensitive change or approval for another revision. |
| Deployment | Provider receipt plus production behavior/configuration read-back | Only local/preview evidence or ambiguous deployment result. |
| Operations | Health indicators, tested alert path, owner and runbook | No way to detect/contain a materially risky failure. |
| Acceptance / authority | Product acceptance and scoped release permission separately recorded | Missing authority, expanded scope or expired/invalidated approval. |
Proportionality: a copy-only page edit needs identity, review/build checks, relevant visual/accessibility checks and live read-back; it does not automatically need a database restore rehearsal. An authentication or financial change needs targeted negative/security tests and qualified review. A customer-data migration needs compatibility, concurrency/write coordination, integrity and recovery evidence. The release gate follows the change's risk and blast radius, not a universal maximum checklist.[2][8]
This operating policy is synthesis, not an application audit, legal opinion or certification. Voice intake, ownership, branch ledgers, concurrency scenarios and the scorecard are our recommended practices. Sources were inspected September 13, 2026. Recheck living documentation and provider entitlements before implementation. Google Testing, DORA and SRE share corporate affiliation; GitHub and Microsoft are also affiliated.
Original research identifiers are retained (there is no source 14). These links support the stated guidance, not claims that our apps passed it.
Publication status. Use to distinguish final baseline from draft.
Recommendations. Risk-tailor secure development rather than claim certification.
Open verification standard. Pin version and selected requirement IDs; selection is not whole-standard conformance.
Normative web standard. AA claims require all A and AA criteria plus conformance requirements; combine manual and automated evaluation.
Engineering guidance. Distinguish test isolation/resource size from test purpose; historical limits are not universal mandates.
Engineering guidance. Balance speed, maintainability, utilization, reliability, fidelity; no mandatory test ratios.
Architecture guidance. Write ADRs for significant or hard-to-reverse decisions, not every coding detail.
Operational guidance. Progressive delivery, health checks and explicit stateful recovery.
Product limitations and safety guidance. Agent review supplements rather than replaces human code review.
Product behavior. Verify plan/repository eligibility and actual approval enforcement; multiple listed reviewers are not multiple required approvals.
Research-informed capability guidance. Small testable increments and feedback; association is not a guarantee for this team.
Research-informed capability guidance. Fast feedback and frequent integration; CI is more than owning a runner.
Operational practice. Limited exposure with evaluation; no test method is a panacea.
Operational practice. Incident learning tied to owned prevention actions.
Operational practice. Monitor latency, traffic, errors, saturation plus product-specific correctness.
Research and testing technique. Risk-selected combinatorial interaction coverage; not proof of all permutations.
Draft recommendations. Track changes but do not label this final.
Reliability guidance. Choose RPO/RTO and prove restore; nonproduction drill is not proof of full production RTO.
Tool documentation. Generated bounded-domain inputs complement examples, not exhaustive verification.
Tool documentation. Consumer-provider compatibility; cannot prove all operational behavior.
Tool documentation. Check whether tests detect seeded changes; use selectively and inspect surviving mutations.
Product behavior. Protection can accept skipped or neutral; explicit evidence aggregator must ensure intended tests ran.
Engineering guidance. Use red-green-refactor for behavioral slices; TDD is not sufficient release assurance.
Back to methodology ↑ · See the original release flowchart →