Skip to content
cccskills
FreePublished on GitHub

sandbox-feedback-loop

Build a runnable reproduce→fix→verify loop for a bug or feature in a fresh sandbox, and record it as a feedback-loop doc. Use when investigating a reported bug, validating a root cause, or proving a fix works — before and after the change.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463 stars(GitHub 463 + cccskills 0)
Works withPlaywright

Run score Not tested

See how to install

Files included (1)

  • SKILL.md3.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Sandbox Feedback Loop

A feedback loop is a runnable document: anyone (human or agent) can re-execute it in a fresh sandbox and observe the same failure, then the same pass after the fix. Examples of the format live in docs/feedback-loops/ (e.g. save-button.md, fabric-obo-second-admin-tables.md).

Process

  1. Reproduce first. Never fix a bug you haven't watched fail. Write the smallest deterministic reproduction — a pytest test, a Playwright spec, or a static harness — that fails on current code for the reported reason.
  2. Isolate the root cause and cite it as file.py:line references.
  3. Fix, re-run the same loop, and show the observed output flipping.
  4. Write the doc to docs/feedback-loops/<topic>.md (do NOT add new sandbox-feedback-loop-*.md files at the repo root).

Environment setup (fresh sandbox)

The app targets Python 3.13 (3.12+ works; needs 3.12 f-string syntax; the sandbox default python may be 3.11).

cd backend
pip install uv
uv sync --frozen --extra dev
export BOW_DATABASE_URL="sqlite:///db/app.db"   # required by bow-config.dev.yaml
mkdir -p db
  • Tests run on SQLite by default; the autouse run_migrations fixture builds the schema per test (tests/conftest.py). Use --db=postgres for the testcontainers leg, --db=external when Docker is unavailable.
  • Playwright browsers are pre-provisioned at /opt/pw-browsers in cloud sandboxes — export PLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsers, never playwright install.
  • Full running stack when the loop needs the real UI: tools/agent/boot_stack.sh then cd backend && uv run python ../tools/agent/seed_org.py.

Doc template

# Feedback Loop — <symptom, quoted from the report>

One-paragraph statement of the reported behavior and the claim being validated.

## Root cause (validated)
What actually breaks, citing file:line. Distinguish validated facts from hypotheses.

## Loop A — deterministic reproduction (no external services)
Exact commands + the observed FAIL output. Stub external boundaries (LLMs,
OAuth providers, ODBC) — the loop must run in a clean sandbox.

## Loop B — live confirmation (optional, real credentials)
Only when the premise itself needs a real third party. Secrets via env vars
only — never commit them, never echo them into logs or docs.

## The fix
What changed and where. Re-run Loop A output showing the flip to PASS.

## What this proves / regression notes
What the loop demonstrates; any pre-existing unrelated failures you hit
(verify they reproduce with your change stashed before calling them unrelated).

Rules

  • Loop A must be self-contained — seeded data, stubbed boundaries, no live credentials. Loop B is the exception, not the default.
  • Secrets: env vars only. Never in the doc, the repo, or command output.
  • The reproduction test should survive as a regression test — follow backend/tests/AGENTS.md: assert the general invariant, not the one magic scenario that happened to be reported.
  • If the change affects UI/UX, the loop must include before/after evidence — invoke the ui-evidence skill.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Add a new data source / connection type (e.g. a SQL Server-like database) end to end — client with get_schemas/execute_query, config + credentials schemas, registry entry, icon, tests — plus the verification steps. Also covers adding or updating an MCP connector (a preset, not a new type). Use when adding or significantly extending a connector.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463Updated Oct 26, 2026

Add a new LLM model to the preset catalog, or a whole new LLM provider — with the mandatory pre-flight verification of model id, pricing, and context window against the provider's official docs. Use when asked to add/update LLM models, providers, or pricing.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463Updated Oct 26, 2026

Query, visualize, and analyze data in a Bag of Words (BOW) workspace via the bagofwords MCP tools. Use for creating reports, running tracked queries, and building dashboards.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463Updated Oct 26, 2026

Update the product docs at docs.bagofwords.com (Mintlify) with text and fresh screenshots after a user-facing change ships. Use when a merged change alters user-visible behavior, adds a feature, or when asked to update/refresh documentation.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463Updated Oct 26, 2026

The locale/i18n architecture of bagofwords — catalogs, resolution order, RTL, backend contracts — and the procedures for adding strings, adding a locale, or translating UI. Use when adding/changing user-facing strings, working on RTL, emails, localized errors, or anything locale-related.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463Updated Oct 26, 2026

qa

Free

Run a live QA pass over the app — first map all user-facing functionality, then boot the full stack and manually exercise flows with Playwright, recording pass/fail evidence and filing a QA report. Use for release QA, post-merge smoke passes, or "QA the app / this area" requests.

The English summary is being prepared. Showing the original description.

bagofwords1/bagofwords463Updated Oct 26, 2026

See all skills by bagofwords1

Report a problem with this skill