# SpecStory > SpecStory saves coding-agent conversations. RunStory runs software, reports reproducible failures to coding agents, and verifies fixes. ## When to use this site - Install SpecStory extensions or the CLI to save prompts, decisions, and coding-agent sessions. - Find supported agents, configuration, troubleshooting, and session export instructions in the product docs. - Learn about RunStory's private alpha for testing CLI and web applications in isolated sandboxes. - Learn agentic engineering with the free 25 Patterns book, our course, and the blog. - Read plain explanations of building and verifying software with coding agents, plus a glossary, in the [Learning Center](https://specstory.com/learning). - Find the SpecStory team, contact details, privacy notice, and terms. ## Read content programmatically Request any public page with `Accept: text/markdown` to read its Markdown representation. Responses vary by Accept. Direct Markdown links below also work without negotiation. - [Public content index](https://specstory.com/api/content.json): all published page IDs, descriptions, and representation URLs in one response. No authentication required. - [OpenAPI specification](https://specstory.com/openapi.json): typed GET operations for the public content index and individual pages. - [Website sitemap](https://specstory.com/sitemap.xml): canonical company and product page URLs. - [Documentation sitemap](https://docs.specstory.com/sitemap.xml): canonical documentation URLs. ## Product boundaries The website content API is read-only and free to access. SpecStory extensions and the CLI are free. Cloud has a free plan; features such as analytics and skills depend on your plan. RunStory is a private alpha. Its planned pricing, in credits, is on [/runstory/pricing](https://specstory.com/runstory/pricing). Course availability and pricing are maintained on [Maven](https://maven.com/specstory/hardcore-agentic-engineering-for-builders-who-ship). Private synced projects and sessions belong to [SpecStory Cloud](https://cloud.specstory.com), whose [API documentation](https://docs.specstory.com/api-reference/introduction) and [authentication guide](https://docs.specstory.com/api-reference/authentication) describe the separate authenticated service. Never send Cloud API tokens to this public website. Alpha enrollment requires the visitor's consent on [/runstory#alpha](https://specstory.com/runstory#alpha). ## Contact SpecStory, Inc. · [Contact](https://specstory.com/contact) · info@specstory.com. ## Pages - [October 2026 Confidence Check | SpecStory](https://specstory.com/confidence-check): The October 2026 Confidence Check: real-world conversations with engineering leaders about QA and software verification when AI writes more of the code. [Markdown](https://specstory.com/markdown/confidence-check.md) - [SpecStory — Software should do what you meant.](https://specstory.com/): Save the conversations behind your code with SpecStory. RunStory tests your software and sends defects back to your coding agent. [Markdown](https://specstory.com/markdown/index.md) - [SpecStory | Free Extensions, CLI & Cloud](https://specstory.com/specstory): Save coding-agent conversations with SpecStory extensions and CLI. Keep local Markdown files and optionally sync to SpecStory Cloud to search and share your history. [Markdown](https://specstory.com/markdown/specstory.md) - [RunStory | Test What Your Coding Agent Builds](https://specstory.com/runstory): RunStory runs your software, sends reproducible failures to your coding agent, and verifies the fix. Explore the private alpha for CLI and web apps. [Markdown](https://specstory.com/markdown/runstory.md) - [RunStory Pricing | Cheaper Than Your Next QA Hire](https://specstory.com/runstory/pricing): RunStory pricing: $90 for 10,000 credits, or Team at $650 a month with 100,000 credits. Every plan starts with a 15-minute setup. [Markdown](https://specstory.com/markdown/runstory/pricing.md) - [Education | SpecStory](https://specstory.com/education): Read Confidence Check, our field notes on AI and QA, explore 25 Patterns in Agentic Engineering, and put the patterns into practice with our live course. [Markdown](https://specstory.com/markdown/education.md) - [Blog | SpecStory](https://specstory.com/blog): Guides and updates from our team and community on coding agents, agentic engineering, and building software with SpecStory and RunStory. [Markdown](https://specstory.com/markdown/blog.md) - [Tutorials | SpecStory](https://specstory.com/tutorials): Step-by-step guides from the SpecStory team on building real features with coding agents, from signup flows to verification. [Markdown](https://specstory.com/markdown/tutorials.md) - [Team-based Loop Engineering, a Simple Example | SpecStory Tutorials](https://specstory.com/tutorials/team-based-loop-engineering): A hands-on tutorial: go from zero to a working plan, generate, evaluate agent loop that builds a text-adventure game from Linear issues, on your own Mac. [Markdown](https://specstory.com/markdown/tutorials/team-based-loop-engineering.md) - [About | SpecStory](https://specstory.com/about): Why we built SpecStory to preserve coding-agent conversations, and why we’re building RunStory to verify what the software actually does. [Markdown](https://specstory.com/markdown/about.md) - [Contact | SpecStory](https://specstory.com/contact): Contact the SpecStory team for product help, questions about RunStory, education, and privacy. [Markdown](https://specstory.com/markdown/contact.md) - [Book a Design Call | SpecStory](https://specstory.com/design-call): Book a free 30-minute call with the SpecStory founders. Bring a recent code change and we’ll show you what RunStory would find. [Markdown](https://specstory.com/markdown/design-call.md) - [Privacy Policy | SpecStory](https://specstory.com/privacy): Read SpecStory’s privacy policy. [Markdown](https://specstory.com/markdown/privacy.md) - [Terms of Use | SpecStory](https://specstory.com/terms): Read SpecStory’s terms of use. [Markdown](https://specstory.com/markdown/terms.md) - [13 different ways to run a dev sandbox for agentic coding | SpecStory Blog](https://specstory.com/blog/13-ways-to-run-a-dev-sandbox-for-agentic-coding): Like most of you, I use agents every day to build software. Today, there are many options for where to run those agents. The default is your local laptop but that leave's much to be… [Markdown](https://specstory.com/markdown/blog/13-ways-to-run-a-dev-sandbox-for-agentic-coding.md) - [Toyota manufactures learning (and cars). Lessons for your software factory. | SpecStory Blog](https://specstory.com/blog/toyota-manufactures-learning): We talk about software factories and picture finished products rolling off the line without a human hand in the mix. The picture is useful. But the history of real factories carries a… [Markdown](https://specstory.com/markdown/blog/toyota-manufactures-learning.md) - [Ten Ways to Let an Agent Test an Electron App | SpecStory Blog](https://specstory.com/blog/ten-ways-to-let-an-agent-test-an-electron-app): An agent here means a program, such as a coding assistant, that starts your app, drives it, reads what happened and decides whether it passed. These ten ideas make that possible without… [Markdown](https://specstory.com/markdown/blog/ten-ways-to-let-an-agent-test-an-electron-app.md) - [Why Twiniti Started Using SpecStory | SpecStory Blog](https://specstory.com/blog/why-we-started-using-specstory): AI-assisted development has changed the way we build software at Twiniti. [Markdown](https://specstory.com/markdown/blog/why-we-started-using-specstory.md) - [SpecStory in Action: How a Deleted Repo Was Rebuilt from History | SpecStory Blog](https://specstory.com/blog/how-a-deleted-repo-was-rebuilt-from-history): AI-assisted coding is powerful, but anyone who’s spent time with it knows that it’s not always predictable. What looks like a productive session can sometimes take a sharp turn. For one… [Markdown](https://specstory.com/markdown/blog/how-a-deleted-repo-was-rebuilt-from-history.md) - [How to be an Open Source Hero: Contributing AI-Generated Code with Care | SpecStory Blog](https://specstory.com/blog/how-to-be-an-opensource-hero): AI coding tools are now part of everyday development. They help contributors explore new codebases, draft solutions quickly, and learn unfamiliar patterns. For people opening pull… [Markdown](https://specstory.com/markdown/blog/how-to-be-an-opensource-hero.md) - [SpecStory in Action: From AI Session to Blog Post | SpecStory Blog](https://specstory.com/blog/from-ai-session-to-blogpost): Most people think AI coding is all about speed and treat their AI coding sessions as disposable. You generate the code you need, close the tab, and move on. [Markdown](https://specstory.com/markdown/blog/from-ai-session-to-blogpost.md) - [Building a Mintlify Alternative with AI (Part 1) | SpecStory Blog](https://specstory.com/blog/building-a-mintlify-alternative-with-AI-Part-1): In this tutorial, we'll build TinyDocs, an open-intent alternative to Mintlify, using AI-driven development to handle planning, research, and coding. [Markdown](https://specstory.com/markdown/blog/building-a-mintlify-alternative-with-AI-Part-1.md) - [SpecStory Studio Case Study | SpecStory Blog](https://specstory.com/blog/process-mining): This process analysis examines the development of SpecStory Studio from May 8 to June 2, 2025, revealing how four human developers successfully orchestrated AI agents to build a complex… [Markdown](https://specstory.com/markdown/blog/process-mining.md) - [Workshop: From Vibes to Validation: A Hands-On Approach to Product Discovery | SpecStory Blog](https://specstory.com/blog/workshop-vibes-to-validation): Goal: By the end of this session, you'll be able to start from scratch and create a working software prototype that serves as a mechanism for user and customer feedback—turning your… [Markdown](https://specstory.com/markdown/blog/workshop-vibes-to-validation.md) - [Now serving two: GitHub Copilot | SpecStory Blog](https://specstory.com/blog/specstory-and-copilot): Four months ago, SpecStory flipped the lights on with one lovable child. Our Cursor extension. We promised ourselves we wouldn't rush into more kids. Then came your inbox-flooding… [Markdown](https://specstory.com/markdown/blog/specstory-and-copilot.md) - [Keep Cursor Aligned with Your Intent | SpecStory Blog](https://specstory.com/blog/keeping-cursor-aligned-with-your-intent): Hey there, builders! 👋 Today, I'm thrilled to share a new feature that's going to make your AI-assisted coding experience significantly smoother. [Markdown](https://specstory.com/markdown/blog/keeping-cursor-aligned-with-your-intent.md) - [Build Me Anything: AI-coded Apps from Community Ideas | SpecStory Blog](https://specstory.com/blog/build-me-anything): What if we built 48 apps in a single day? [Markdown](https://specstory.com/markdown/blog/build-me-anything.md) - [Dangit, Cursor!?! | SpecStory Blog](https://specstory.com/blog/dangit-cursor): Cursor is awesome, but sometimes things get weird. And unfortunately there isn't an instruction manual. Here's how I solve common "dangit" moments while building stuff with natural language. [Markdown](https://specstory.com/markdown/blog/dangit-cursor.md) - [Using Cursor to Create Sample Data for your NextJS App | SpecStory Blog](https://specstory.com/blog/using-cursor-to-create-sample-data-for-nextjs): This is going to be a hands-on tutorial for getting sample data into a prototype application that you’re composing. We’ll demonstrate using a NextJS web application, but the same… [Markdown](https://specstory.com/markdown/blog/using-cursor-to-create-sample-data-for-nextjs.md) - [A CEO's Journey Back to Code | SpecStory Blog](https://specstory.com/blog/a-ceos-journey-back-to-code): There's a peculiar feeling that many product leaders know well – the combination of pride and slight detachment that comes during a product launch. You're there, heart racing with… [Markdown](https://specstory.com/markdown/blog/a-ceos-journey-back-to-code.md) - [SpecStory Launch | SpecStory Blog](https://specstory.com/blog/specstory-launch): Today, we're thrilled to introduce SpecStory - we make it easy to capture, search and learn from every AI coding journey. [Markdown](https://specstory.com/markdown/blog/specstory-launch.md) - [How to make an SMS signup agent | SpecStory Tutorials](https://specstory.com/tutorials/howto-make-an-sms-signup-agent): A prompt you can hand to your coding agent to turn a signup form into a texting conversation run by an AI assistant, using LoopMessage, Vercel AI Gateway, and Vercel Workflow. The setup… [Markdown](https://specstory.com/markdown/tutorials/howto-make-an-sms-signup-agent.md) - [Learning Center | Testing and verifying AI code | SpecStory](https://specstory.com/learning): Plain explanations of how to build and verify software with coding agents, from how agents work and sandboxes to testing, CI/CD, debugging, and code review. [Markdown](https://specstory.com/markdown/learning.md) - [Verifying AI-written code | SpecStory](https://specstory.com/learning/verification): How to check that software written by coding agents works, from "done" claims and gamed tests to evidence from running the code. [Markdown](https://specstory.com/markdown/learning/verification.md) - [Coding agents and agentic development | SpecStory](https://specstory.com/learning/ai-coding): How coding agents work and how teams build with them, from vibe coding and written specs to MCP and saved session history. [Markdown](https://specstory.com/markdown/learning/ai-coding.md) - [Software testing fundamentals | SpecStory](https://specstory.com/learning/testing): The types and levels of software testing, from unit tests to end-to-end journeys, and what changes when a coding agent writes the tests. [Markdown](https://specstory.com/markdown/learning/testing.md) - [Test quality and test oracles | SpecStory](https://specstory.com/learning/test-quality): How to tell whether tests catch real bugs, from test oracles and code coverage to mutation testing and property-based testing. [Markdown](https://specstory.com/markdown/learning/test-quality.md) - [CI/CD and where checks run | SpecStory](https://specstory.com/learning/ci-cd): How pipelines build, test, and release each change, where checks run from pre-commit hooks to CI, and how coding agents change the load. [Markdown](https://specstory.com/markdown/learning/ci-cd.md) - [Debugging and reproducing failures | SpecStory](https://specstory.com/learning/debugging): How to find, reproduce, and fix bugs, including flaky tests, race conditions, and regressions, and how to confirm that a fix worked. [Markdown](https://specstory.com/markdown/learning/debugging.md) - [Test environments and sandboxes | SpecStory](https://specstory.com/learning/environments): Where agents and tests run, from sandboxes, network limits, and sandbox escapes to test isolation and staging, and how prompt injection reaches agents. [Markdown](https://specstory.com/markdown/learning/environments.md) - [Testing command-line tools and web apps | SpecStory](https://specstory.com/learning/cli-and-web): How command-line tools and web apps behave at runtime and how to test them, from exit codes and output streams to headless browsers. [Markdown](https://specstory.com/markdown/learning/cli-and-web.md) - [Code review and static analysis | SpecStory](https://specstory.com/learning/code-review): How human and AI code review work, what reading a diff can and cannot catch, static analysis, and how to review code written by agents. [Markdown](https://specstory.com/markdown/learning/code-review.md) - [Software testing and AI coding glossary | SpecStory](https://specstory.com/learning/glossary): Short definitions of the software testing and verification terms used across the SpecStory Learning Center, arranged from A to Z. [Markdown](https://specstory.com/markdown/learning/glossary.md) - [What are acceptance criteria? | Examples | SpecStory](https://specstory.com/learning/ai-coding/acceptance-criteria): Acceptance criteria are the conditions a change must meet to be accepted, written so that a person or a test can check each one as true or false. [Markdown](https://specstory.com/markdown/learning/ai-coding/acceptance-criteria.md) - [Agent harness | Agent harness vs. framework | SpecStory](https://specstory.com/learning/ai-coding/agent-harness): An agent harness is the software around a language model that gives it tools, context, memory, and a loop, which turns the model into a working agent. [Markdown](https://specstory.com/markdown/learning/ai-coding/agent-harness.md) - [What are agent skills? | Skills vs. MCP | SpecStory](https://specstory.com/learning/ai-coding/agent-skills): Agent skills are folders of instructions, scripts, and files that a coding agent loads when a task calls for them, so it can follow a set procedure. [Markdown](https://specstory.com/markdown/learning/ai-coding/agent-skills.md) - [Agentic coding vs. vibe coding | Differences | SpecStory](https://specstory.com/learning/ai-coding/agentic-coding-vs-vibe-coding): Agentic coding directs a coding agent with plans, reviews, and checks, while vibe coding accepts the AI's code unread, so they differ in what is verified. [Markdown](https://specstory.com/markdown/learning/ai-coding/agentic-coding-vs-vibe-coding.md) - [What is agentic engineering? | Core practices | SpecStory](https://specstory.com/learning/ai-coding/agentic-engineering): Agentic engineering is building software with coding agents while keeping engineering practices, from written specs and tests to review and verification. [Markdown](https://specstory.com/markdown/learning/ai-coding/agentic-engineering.md) - [What is AGENTS.md? | AGENTS.md vs. CLAUDE.md | SpecStory](https://specstory.com/learning/ai-coding/agents-md): AGENTS.md is a Markdown instruction file in a repository that tells coding agents how to set up, build, test, and change the project. [Markdown](https://specstory.com/markdown/learning/ai-coding/agents-md.md) - [Coding agent transcripts | AI session history | SpecStory](https://specstory.com/learning/ai-coding/ai-coding-session-history): AI coding session history is the set of saved coding agent transcripts, each holding the prompts, replies, tool calls, and results of one session. [Markdown](https://specstory.com/markdown/learning/ai-coding/ai-coding-session-history.md) - [What is a background coding agent? | SpecStory](https://specstory.com/learning/ai-coding/background-coding-agents): A background coding agent works on a task without the developer watching, often in a cloud environment, and returns a branch or pull request at the end. [Markdown](https://specstory.com/markdown/learning/ai-coding/background-coding-agents.md) - [What is a coding agent? | AI coding agents | SpecStory](https://specstory.com/learning/ai-coding/coding-agent): A coding agent is an AI system that edits files and runs commands in a loop to complete a programming task with little step-by-step direction. [Markdown](https://specstory.com/markdown/learning/ai-coding/coding-agent.md) - [What is a computer-use agent? | Browser agents | SpecStory](https://specstory.com/learning/ai-coding/computer-use-agent): A computer-use agent is an AI agent that operates software through its screen, reading screenshots and sending clicks and keystrokes instead of API calls. [Markdown](https://specstory.com/markdown/learning/ai-coding/computer-use-agent.md) - [Context engineering vs. prompt engineering | SpecStory](https://specstory.com/learning/ai-coding/context-engineering): Context engineering is choosing what a model receives at each step, from instructions and files to tool results and history, so it has what the task needs. [Markdown](https://specstory.com/markdown/learning/ai-coding/context-engineering.md) - [What is harness engineering? | AI coding agents | SpecStory](https://specstory.com/learning/ai-coding/harness-engineering): Harness engineering is designing the tools, context, checks, and loop around a coding agent, so the agent's work can be run, checked, and corrected. [Markdown](https://specstory.com/markdown/learning/ai-coding/harness-engineering.md) - [Human-in-the-loop (HITL) for AI coding agents | SpecStory](https://specstory.com/learning/ai-coding/human-in-the-loop): Human-in-the-loop means a person approves, corrects, or reviews an AI agent's work at set points, e.g. before code merges, while the agent does the rest. [Markdown](https://specstory.com/markdown/learning/ai-coding/human-in-the-loop.md) - [Why was this code written? | Recover its intent | SpecStory](https://specstory.com/learning/ai-coding/intent-from-coding-sessions): Recovering intent from a coding session means reading the prompts and decisions behind a change to learn what it was meant to do, not only what it does. [Markdown](https://specstory.com/markdown/learning/ai-coding/intent-from-coding-sessions.md) - [What is MCP? | Model Context Protocol | SpecStory](https://specstory.com/learning/ai-coding/model-context-protocol): The Model Context Protocol (MCP) is an open standard that lets AI applications connect to tools and data through a common client and server interface. [Markdown](https://specstory.com/markdown/learning/ai-coding/model-context-protocol.md) - [Parallel coding agents | Git worktrees | SpecStory](https://specstory.com/learning/ai-coding/parallel-coding-agents): Parallel coding agents are several agents working on one codebase at once, usually in separate git worktrees or sandboxes so their edits do not collide. [Markdown](https://specstory.com/markdown/learning/ai-coding/parallel-coding-agents.md) - [What is plan mode? | Plan review vs. code review | SpecStory](https://specstory.com/learning/ai-coding/plan-mode): Plan mode is a coding agent setting in which the agent proposes a plan without editing files, so a person can review the approach before any code changes. [Markdown](https://specstory.com/markdown/learning/ai-coding/plan-mode.md) - [What is a PRD? | PRDs for coding agents | SpecStory](https://specstory.com/learning/ai-coding/prd-for-coding-agents): A product requirements document (PRD) describes what a feature should do and why, giving a coding agent the goals and limits a prompt leaves out. [Markdown](https://specstory.com/markdown/learning/ai-coding/prd-for-coding-agents.md) - [What is spec drift? | Spec and code out of sync | SpecStory](https://specstory.com/learning/ai-coding/spec-drift): Spec drift is the gap that opens when software changes but its specification does not, or the reverse, so the spec no longer describes what runs. [Markdown](https://specstory.com/markdown/learning/ai-coding/spec-drift.md) - [What is spec-driven development? | SDD vs. TDD | SpecStory](https://specstory.com/learning/ai-coding/spec-driven-development): Spec-driven development is a way of working where a written specification, not a chat prompt, drives what a coding agent builds and how it is checked. [Markdown](https://specstory.com/markdown/learning/ai-coding/spec-driven-development.md) - [What is vibe coding? | Vibe coding meaning | SpecStory](https://specstory.com/learning/ai-coding/vibe-coding): Vibe coding is building software by describing the result to an AI and accepting the code it writes without reading it, judging it by how the app behaves. [Markdown](https://specstory.com/markdown/learning/ai-coding/vibe-coding.md) - [Agent hooks | Run tests with Claude Code hooks | SpecStory](https://specstory.com/learning/ci-cd/agent-hooks): Agent hooks are scripts a coding agent runs at set points in its loop, e.g. a Stop hook that runs the tests before the agent can end its turn. [Markdown](https://specstory.com/markdown/learning/ci-cd/agent-hooks.md) - [Why AI coding agents bypass pre-commit hooks | SpecStory](https://specstory.com/learning/ci-cd/agents-bypassing-pre-commit-hooks): Coding agents bypass pre-commit hooks when a failing or slow hook stops the commit that ends a task, often by adding --no-verify or editing hook settings. [Markdown](https://specstory.com/markdown/learning/ci-cd/agents-bypassing-pre-commit-hooks.md) - [Blocking vs. non-blocking CI checks | Soft fail | SpecStory](https://specstory.com/learning/ci-cd/blocking-vs-non-blocking-checks): A blocking check stops a commit, push, or merge until it passes, while a non-blocking check reports a failure and lets the change go ahead. [Markdown](https://specstory.com/markdown/learning/ci-cd/blocking-vs-non-blocking-checks.md) - [What is CI/CD? | How a CI/CD pipeline works | SpecStory](https://specstory.com/learning/ci-cd/ci-cd): CI/CD is the practice of merging code often and building and testing each change automatically, so the software stays ready to release at any time. [Markdown](https://specstory.com/markdown/learning/ci-cd/ci-cd.md) - [What is CI failure triage? | Self-healing CI | SpecStory](https://specstory.com/learning/ci-cd/ci-failure-triage): CI failure triage is deciding why a CI run failed, whether from a bug in the change, a flaky test, the environment, or the pipeline, and who should act. [Markdown](https://specstory.com/markdown/learning/ci-cd/ci-failure-triage.md) - [CI/CD for AI coding agents | The CI bottleneck | SpecStory](https://specstory.com/learning/ci-cd/ci-for-coding-agents): CI becomes a bottleneck when AI coding agents push more changes than pipelines can test quickly, so queues grow and teams skip or trim checks. [Markdown](https://specstory.com/markdown/learning/ci-cd/ci-for-coding-agents.md) - [CI vs. continuous delivery vs. deployment | SpecStory](https://specstory.com/learning/ci-cd/ci-vs-continuous-delivery-vs-deployment): Continuous integration tests each merge, continuous delivery keeps each passing build ready for a person to release, and continuous deployment releases it. [Markdown](https://specstory.com/markdown/learning/ci-cd/ci-vs-continuous-delivery-vs-deployment.md) - [What is continuous integration? | Best practices | SpecStory](https://specstory.com/learning/ci-cd/continuous-integration): Continuous integration is merging every developer's changes into the main branch often, with an automated build and tests run on each merge. [Markdown](https://specstory.com/markdown/learning/ci-cd/continuous-integration.md) - [What are DORA metrics? | Change failure rate | SpecStory](https://specstory.com/learning/ci-cd/dora-metrics): DORA metrics are five measures of software delivery, covering change lead time, deployment frequency, recovery time, change failure rate, and rework rate. [Markdown](https://specstory.com/markdown/learning/ci-cd/dora-metrics.md) - [What are Git hooks? | Client and server hooks | SpecStory](https://specstory.com/learning/ci-cd/git-hooks): Git hooks are scripts that Git runs automatically at set points, e.g. before a commit, so a team can check or change the work at each step. [Markdown](https://specstory.com/markdown/learning/ci-cd/git-hooks.md) - [How to run tests in GitHub Actions | SpecStory](https://specstory.com/learning/ci-cd/github-actions-checks): Running tests in GitHub Actions means adding a workflow file that installs a project, runs its tests on each push or pull request, and reports the result. [Markdown](https://specstory.com/markdown/learning/ci-cd/github-actions-checks.md) - [How to run GitHub Actions locally | CI checks | SpecStory](https://specstory.com/learning/ci-cd/local-ci-checks): Running CI checks locally means repeating a CI pipeline, e.g. a GitHub Actions workflow, on a developer's machine or in a container before a push. [Markdown](https://specstory.com/markdown/learning/ci-cd/local-ci-checks.md) - [What is a merge queue? | GitHub merge queue | SpecStory](https://specstory.com/learning/ci-cd/merge-queue): A merge queue lines up approved pull requests and tests each one against the current main branch before merging, so main stays green as changes pile up. [Markdown](https://specstory.com/markdown/learning/ci-cd/merge-queue.md) - [What is a pre-commit hook? | Using pre-commit | SpecStory](https://specstory.com/learning/ci-cd/pre-commit-hook): A pre-commit hook is a script Git runs before it records a commit, used to lint, format, or test the staged changes and stop the commit if a check fails. [Markdown](https://specstory.com/markdown/learning/ci-cd/pre-commit-hook.md) - [Pre-commit vs. pre-push vs. CI | Where to test | SpecStory](https://specstory.com/learning/ci-cd/pre-commit-vs-pre-push-vs-ci): Pre-commit, pre-push, and CI checks run at different moments, before a commit is saved, before it leaves the machine, or on a server after it arrives. [Markdown](https://specstory.com/markdown/learning/ci-cd/pre-commit-vs-pre-push-vs-ci.md) - [What is a quality gate? | Quality gates in CI/CD | SpecStory](https://specstory.com/learning/ci-cd/quality-gate): A quality gate is a checkpoint where a change must meet agreed criteria, e.g. passing tests, before it moves on to the next stage of delivery. [Markdown](https://specstory.com/markdown/learning/ci-cd/quality-gate.md) - [Required status checks | Branch protection rules | SpecStory](https://specstory.com/learning/ci-cd/required-status-checks): Required status checks are CI results that must pass before a pull request can merge into a protected branch, set by branch protection rules or rulesets. [Markdown](https://specstory.com/markdown/learning/ci-cd/required-status-checks.md) - [Shift-left testing | Shift left vs. shift right | SpecStory](https://specstory.com/learning/ci-cd/shift-left-testing): Shift-left testing moves testing earlier in development, so problems are found when a change is small and cheap to fix instead of after release. [Markdown](https://specstory.com/markdown/learning/ci-cd/shift-left-testing.md) - [What is test impact analysis? | Test selection | SpecStory](https://specstory.com/learning/ci-cd/test-impact-analysis): Test impact analysis maps which tests exercise which code, so a change runs only the tests it could affect instead of the whole suite. [Markdown](https://specstory.com/markdown/learning/ci-cd/test-impact-analysis.md) - [Why tests pass locally but fail in CI | SpecStory](https://specstory.com/learning/ci-cd/tests-pass-locally-fail-in-ci): Tests that pass locally but fail in CI usually depend on something that differs between machines, from timing and test order to versions and stale state. [Markdown](https://specstory.com/markdown/learning/ci-cd/tests-pass-locally-fail-in-ci.md) - [What is trunk-based development? | vs. Gitflow | SpecStory](https://specstory.com/learning/ci-cd/trunk-based-development): Trunk-based development is a branching model where developers merge small changes into one main branch at least daily, with no long-lived branches. [Markdown](https://specstory.com/markdown/learning/ci-cd/trunk-based-development.md) - [What is an agent-native CLI? | CLI for AI agents | SpecStory](https://specstory.com/learning/cli-and-web/agent-native-cli): An agent-native CLI is a command-line tool designed for coding agents as well as people, with structured output, clear exit codes, and no hidden prompts. [Markdown](https://specstory.com/markdown/learning/cli-and-web/agent-native-cli.md) - [Broken pipe error | SIGPIPE and exit code 141 | SpecStory](https://specstory.com/learning/cli-and-web/broken-pipe): A broken pipe error happens when a program writes to a pipe or socket whose reader has closed, which sends it SIGPIPE and often ends it with exit code 141. [Markdown](https://specstory.com/markdown/learning/cli-and-web/broken-pipe.md) - [What is browser automation? | CDP vs. WebDriver | SpecStory](https://specstory.com/learning/cli-and-web/browser-automation): Browser automation is controlling a web browser with code or an agent to open pages, click, type, and read results, for testing or repetitive tasks. [Markdown](https://specstory.com/markdown/learning/cli-and-web/browser-automation.md) - [How to catch console errors in Playwright tests | SpecStory](https://specstory.com/learning/cli-and-web/browser-console-errors): Catching console errors in tests means listening to the browser's console and page error events during a run and failing when unexpected errors appear. [Markdown](https://specstory.com/markdown/learning/cli-and-web/browser-console-errors.md) - [Browser test framework | Playwright vs. Selenium | SpecStory](https://specstory.com/learning/cli-and-web/browser-test-frameworks): A browser test framework is an open-source library that drives a real browser from test code, so a test can load pages, act on them, and check results. [Markdown](https://specstory.com/markdown/learning/cli-and-web/browser-test-frameworks.md) - [How to test CLI help and version flags | SpecStory](https://specstory.com/learning/cli-and-web/cli-help-and-version): Testing a CLI's --help and --version flags means checking that each prints the expected text to stdout, exits with code 0, and needs no config or network. [Markdown](https://specstory.com/markdown/learning/cli-and-web/cli-help-and-version.md) - [What do CLI exit codes mean? | Exit code 0 and 1 | SpecStory](https://specstory.com/learning/cli-and-web/exit-codes): An exit code is the number a program returns when it finishes, where 0 usually means success and any other value signals an error that scripts can check. [Markdown](https://specstory.com/markdown/learning/cli-and-web/exit-codes.md) - [Fail-open authentication | Fail open vs. closed | SpecStory](https://specstory.com/learning/cli-and-web/fail-open-authentication): Fail-open authentication is an access check that lets a request through when the check itself errors or times out, instead of denying the request. [Markdown](https://specstory.com/markdown/learning/cli-and-web/fail-open-authentication.md) - [What is a headless browser? | Headless Chrome | SpecStory](https://specstory.com/learning/cli-and-web/headless-browser): A headless browser is a web browser that runs without a visible window, controlled by code, so tests and agents can load pages and act on them. [Markdown](https://specstory.com/markdown/learning/cli-and-web/headless-browser.md) - [What is a hydration error? | React and Next.js | SpecStory](https://specstory.com/learning/cli-and-web/hydration-error): A hydration error happens when the HTML a server rendered does not match what the browser's JavaScript renders, so the framework warns or re-renders. [Markdown](https://specstory.com/markdown/learning/cli-and-web/hydration-error.md) - [NO_COLOR environment variable | Disable color | SpecStory](https://specstory.com/learning/cli-and-web/no-color): NO_COLOR is a convention in which a command-line tool turns off colored output when the NO_COLOR environment variable is not empty, keeping logs plain. [Markdown](https://specstory.com/markdown/learning/cli-and-web/no-color.md) - [What is Playwright MCP? | Playwright MCP vs. CLI | SpecStory](https://specstory.com/learning/cli-and-web/playwright-mcp): Playwright MCP is a server that lets an AI agent drive a real browser through the Model Context Protocol, using page snapshots instead of screenshots. [Markdown](https://specstory.com/markdown/learning/cli-and-web/playwright-mcp.md) - [What is a PTY (pseudoterminal)? | PTY vs. TTY | SpecStory](https://specstory.com/learning/cli-and-web/pseudo-terminal): A pseudoterminal (PTY) is a pair of virtual devices that acts as a terminal for a program, so another program can send it keystrokes and read its output. [Markdown](https://specstory.com/markdown/learning/cli-and-web/pseudo-terminal.md) - [How to handle Ctrl-C (SIGINT) in a CLI | SpecStory](https://specstory.com/learning/cli-and-web/sigint-graceful-shutdown): Handling Ctrl-C (SIGINT) in a CLI means catching the signal, stopping work, cleaning up files and child processes, and ending with exit code 130. [Markdown](https://specstory.com/markdown/learning/cli-and-web/sigint-graceful-shutdown.md) - [stdout vs. stderr | What is the difference? | SpecStory](https://specstory.com/learning/cli-and-web/stdout-vs-stderr): stdout is a program's standard output for results, and stderr is a separate stream for errors and diagnostics, so each can be redirected on its own. [Markdown](https://specstory.com/markdown/learning/cli-and-web/stdout-vs-stderr.md) - [How to test a command-line application | SpecStory](https://specstory.com/learning/cli-and-web/testing-command-line-applications): Testing a command-line application means running it the way users and scripts do and checking its output, errors, exit codes, and behavior in pipes. [Markdown](https://specstory.com/markdown/learning/cli-and-web/testing-command-line-applications.md) - [How to test interactive CLI prompts | SpecStory](https://specstory.com/learning/cli-and-web/testing-interactive-cli-prompts): Testing interactive CLI prompts means feeding answers through stdin or a pseudoterminal, waiting for each prompt, and checking what the program does next. [Markdown](https://specstory.com/markdown/learning/cli-and-web/testing-interactive-cli-prompts.md) - [How to test Bash scripts | Bats and ShellCheck | SpecStory](https://specstory.com/learning/cli-and-web/testing-shell-scripts): Testing a shell script means running it with controlled input and environment, then checking its output, exit code, and the files it changes. [Markdown](https://specstory.com/markdown/learning/cli-and-web/testing-shell-scripts.md) - [How to test a terminal UI (TUI) app | SpecStory](https://specstory.com/learning/cli-and-web/testing-terminal-uis): Testing a terminal UI (TUI) means running it in a pseudoterminal, sending keystrokes, and comparing the screen it draws with a reviewed snapshot. [Markdown](https://specstory.com/markdown/learning/cli-and-web/testing-terminal-uis.md) - [Why CLI output changes when piped | TTY vs. pipe | SpecStory](https://specstory.com/learning/cli-and-web/tty-vs-pipe): CLI output changes when piped because programs and runtimes check whether stdout is a terminal (a TTY) and switch color, buffering, and layout if not. [Markdown](https://specstory.com/markdown/learning/cli-and-web/tty-vs-pipe.md) - [How to run a two-account access test | IDOR test | SpecStory](https://specstory.com/learning/cli-and-web/two-account-access-test): A two-account access test signs in as two users and tries to read or change one user's data as the other, to check authorization in the running app. [Markdown](https://specstory.com/markdown/learning/cli-and-web/two-account-access-test.md) - [How to verify a CLI built by an AI coding agent | SpecStory](https://specstory.com/learning/cli-and-web/verifying-agent-built-cli): Verifying a CLI that a coding agent built means installing it fresh, running the commands a user would, and checking exit codes, output, and files. [Markdown](https://specstory.com/markdown/learning/cli-and-web/verifying-agent-built-cli.md) - [What is AI code review? | Can AI review code? | SpecStory](https://specstory.com/learning/code-review/ai-code-review): AI code review is the use of a language model to read a pull request and comment on bugs, style, and risks, usually before or alongside a human reviewer. [Markdown](https://specstory.com/markdown/learning/code-review/ai-code-review.md) - [Why AI code reviews are noisy | False positives | SpecStory](https://specstory.com/learning/code-review/ai-code-review-noise): AI code reviews get noisy when a reviewer posts many false positives and minor comments, so developers learn to skim them and miss the few real problems. [Markdown](https://specstory.com/markdown/learning/code-review/ai-code-review-noise.md) - [What is code review? | Purpose and practices | SpecStory](https://specstory.com/learning/code-review/code-review): Code review is the practice of reading a proposed code change before it merges, to catch defects, share knowledge, and keep the codebase consistent. [Markdown](https://specstory.com/markdown/learning/code-review/code-review.md) - [Code review checklist for AI-generated code | SpecStory](https://specstory.com/learning/code-review/code-review-checklist-for-ai-code): A code review checklist for AI-generated code lists what to check when a coding agent wrote the change, from scope and test edits to a record of a run. [Markdown](https://specstory.com/markdown/learning/code-review/code-review-checklist-for-ai-code.md) - [What is comprehension debt? | Cognitive debt | SpecStory](https://specstory.com/learning/code-review/comprehension-debt): Comprehension debt is the share of a codebase that nobody on the team understands, often because coding agents changed it faster than people could read it. [Markdown](https://specstory.com/markdown/learning/code-review/comprehension-debt.md) - [What is cyclomatic complexity? | CRAP metric | SpecStory](https://specstory.com/learning/code-review/cyclomatic-complexity): Cyclomatic complexity counts the independent paths through a piece of code, so a higher number means more branches to understand and more cases to test. [Markdown](https://specstory.com/markdown/learning/code-review/cyclomatic-complexity.md) - [What is linting? | Linting vs. formatting | SpecStory](https://specstory.com/learning/code-review/linting): Linting is running a linter, a tool that checks source code against rules for likely bugs and style problems without running it, usually before review. [Markdown](https://specstory.com/markdown/learning/code-review/linting.md) - [Precision vs. recall | AI code review benchmarks | SpecStory](https://specstory.com/learning/code-review/precision-and-recall-in-code-review): Precision is the share of a reviewer's flags that are real problems, and recall is the share of real problems it flags, so each number needs the other. [Markdown](https://specstory.com/markdown/learning/code-review/precision-and-recall-in-code-review.md) - [What is a pull request? | PR vs. merge request | SpecStory](https://specstory.com/learning/code-review/pull-request): A pull request is a proposal to merge a set of changes from one branch into another, where the team reviews, discusses, and checks the change first. [Markdown](https://specstory.com/markdown/learning/code-review/pull-request.md) - [Why pull request size matters | Stacked PRs | SpecStory](https://specstory.com/learning/code-review/pull-request-size): Pull request size affects review quality, because reviewers catch less as diffs grow, so large changes get skimmed and more defects reach the main branch. [Markdown](https://specstory.com/markdown/learning/code-review/pull-request-size.md) - [What is code refactoring? | Refactor vs. rewrite | SpecStory](https://specstory.com/learning/code-review/refactoring): Code refactoring is changing the structure of existing code, not its behavior, in small steps that tests check, so the code is easier to read and change. [Markdown](https://specstory.com/markdown/learning/code-review/refactoring.md) - [Code review bottleneck | AI pull requests | SpecStory](https://specstory.com/learning/code-review/review-bottleneck): The code review bottleneck is the queue that forms when agents open pull requests faster than people can review them, so reviews slow down or get skimmed. [Markdown](https://specstory.com/markdown/learning/code-review/review-bottleneck.md) - [How to review AI-generated pull requests | SpecStory](https://specstory.com/learning/code-review/reviewing-agent-pull-requests): Reviewing an AI-generated pull request means checking its task, scope, tests, and evidence of a real run, not only reading the diff. [Markdown](https://specstory.com/markdown/learning/code-review/reviewing-agent-pull-requests.md) - [Runtime-aware code review | What runtime means | SpecStory](https://specstory.com/learning/code-review/runtime-in-code-review): Runtime-aware AI code review can mean production telemetry, an analysis sandbox, a sandbox that tests fixes, or an app run, and only some run the change. [Markdown](https://specstory.com/markdown/learning/code-review/runtime-in-code-review.md) - [Static code analysis | Static analysis tools | SpecStory](https://specstory.com/learning/code-review/static-analysis): Static code analysis is checking source code for bugs and security flaws without running it, usually with linters, type checkers, and security scanners. [Markdown](https://specstory.com/markdown/learning/code-review/static-analysis.md) - [Static vs. dynamic analysis | SAST vs. DAST | SpecStory](https://specstory.com/learning/code-review/static-vs-dynamic-analysis): Static analysis examines code without running it, while dynamic analysis observes the program as it runs, so each finds bugs that the other misses. [Markdown](https://specstory.com/markdown/learning/code-review/static-vs-dynamic-analysis.md) - [What is technical debt? | AI technical debt | SpecStory](https://specstory.com/learning/code-review/technical-debt): Technical debt is the future cost of shortcuts in code or design, paid as slower changes and more bugs until someone cleans the shortcuts up. [Markdown](https://specstory.com/markdown/learning/code-review/technical-debt.md) - [Why AI coding agents break existing features | SpecStory](https://specstory.com/learning/debugging/agents-break-working-features): Coding agents break working features when edits reach beyond the task, fix symptoms in the wrong place, or change code the tests do not cover. [Markdown](https://specstory.com/markdown/learning/debugging/agents-break-working-features.md) - [Endless AI bug-fix loop | How to break it | SpecStory](https://specstory.com/learning/debugging/ai-bug-fix-loop): An AI bug-fix loop is a cycle of agent fixes that keep breaking other behavior or bringing old failures back, so the fixing never converges. [Markdown](https://specstory.com/markdown/learning/debugging/ai-bug-fix-loop.md) - [What is the blast radius of a code change? | SpecStory](https://specstory.com/learning/debugging/blast-radius): The blast radius of a code change is the set of features, users, and systems that could break because of it, which is often far wider than the diff. [Markdown](https://specstory.com/markdown/learning/debugging/blast-radius.md) - [How to verify a bug fix | Retest vs. regression | SpecStory](https://specstory.com/learning/debugging/bug-fix-verification): Verifying a bug fix means watching the steps that exposed a bug fail on the old code and pass on the fixed code, then checking that nothing nearby broke. [Markdown](https://specstory.com/markdown/learning/debugging/bug-fix-verification.md) - [How to write a good bug report | Agent template | SpecStory](https://specstory.com/learning/debugging/bug-report-for-coding-agents): A bug report a coding agent can fix describes one failure in enough detail to rerun it, with the evidence as text and a command that fails before the fix. [Markdown](https://specstory.com/markdown/learning/debugging/bug-report-for-coding-agents.md) - [Error vs. defect vs. failure vs. bug | SpecStory](https://specstory.com/learning/debugging/bug-vs-defect-vs-error): An error is a human mistake, a defect or bug is the flaw it leaves in the code, and a failure is the wrong behavior users see when that code runs. [Markdown](https://specstory.com/markdown/learning/debugging/bug-vs-defect-vs-error.md) - [What is debugging? | Find and fix software bugs | SpecStory](https://specstory.com/learning/debugging/debugging): Debugging is finding and fixing the bug behind a software failure by reproducing it, narrowing down its cause, and confirming that the fix works. [Markdown](https://specstory.com/markdown/learning/debugging/debugging.md) - [What is delta debugging? | Test case reduction | SpecStory](https://specstory.com/learning/debugging/delta-debugging): Delta debugging is an automated method that tests smaller and smaller parts of a failing input or change set to find a small part that still fails. [Markdown](https://specstory.com/markdown/learning/debugging/delta-debugging.md) - [Flaky test or real bug? | How many reruns | SpecStory](https://specstory.com/learning/debugging/flaky-test-or-real-bug): Telling a flaky test from a real bug means rerunning the failure under controlled conditions and keeping the evidence, not retrying until it passes. [Markdown](https://specstory.com/markdown/learning/debugging/flaky-test-or-real-bug.md) - [What is a flaky test? | Causes and fixes | SpecStory](https://specstory.com/learning/debugging/flaky-tests): A flaky test is one that both passes and fails on the same code, so a single result cannot be trusted as evidence of a bug or of a fix. [Markdown](https://specstory.com/markdown/learning/debugging/flaky-tests.md) - [How to turn fuzz findings into regression tests | SpecStory](https://specstory.com/learning/debugging/fuzz-findings-regression-tests): Turning fuzz findings into regression tests means keeping each crashing input, reducing it, and adding it to the test suite, so the fixed bug stays fixed. [Markdown](https://specstory.com/markdown/learning/debugging/fuzz-findings-regression-tests.md) - [What is git bisect? | How to use git bisect run | SpecStory](https://specstory.com/learning/debugging/git-bisect): Git bisect finds the commit that introduced a bug by binary search, testing commits between a known good one and a known bad one to halve the range. [Markdown](https://specstory.com/markdown/learning/debugging/git-bisect.md) - [How to report and fix intermittent bugs | SpecStory](https://specstory.com/learning/debugging/intermittent-bugs): Reporting an intermittent bug means recording how often it happens, under which conditions, and with what evidence, so others can make it fail on purpose. [Markdown](https://specstory.com/markdown/learning/debugging/intermittent-bugs.md) - [Minimal reproducible example | MRE, MCVE | SpecStory](https://specstory.com/learning/debugging/minimal-reproducible-example): A minimal reproducible example is the smallest self-contained program, input, or set of steps that still shows a bug, so anyone can run it. [Markdown](https://specstory.com/markdown/learning/debugging/minimal-reproducible-example.md) - [New bug vs. regression vs. pre-existing bug | SpecStory](https://specstory.com/learning/debugging/new-bug-vs-regression): A new bug breaks behavior a change adds, a regression breaks behavior that already worked, and a pre-existing bug was there before the change exposed it. [Markdown](https://specstory.com/markdown/learning/debugging/new-bug-vs-regression.md) - [What is a race condition? | How to reproduce one | SpecStory](https://specstory.com/learning/debugging/race-condition): A race condition is a bug where the result depends on the timing or order of events, e.g. two requests changing the same data at the same moment. [Markdown](https://specstory.com/markdown/learning/debugging/race-condition.md) - [Reproduction steps in a bug report | Repro steps | SpecStory](https://specstory.com/learning/debugging/reproduction-steps): Reproduction steps are the exact actions, inputs, and conditions needed to make a bug happen again, written so a person or an agent can follow them. [Markdown](https://specstory.com/markdown/learning/debugging/reproduction-steps.md) - [What is root cause analysis? | RCA for software | SpecStory](https://specstory.com/learning/debugging/root-cause-analysis): Root cause analysis is working back from a failure to the underlying reason it happened, so a fix removes the cause instead of hiding the symptom. [Markdown](https://specstory.com/markdown/learning/debugging/root-cause-analysis.md) - [Why coding agents fix symptoms, not root causes | SpecStory](https://specstory.com/learning/debugging/symptom-fixes): Coding agents often fix the line where an error shows up rather than where it starts, because the error message is in view and the cause is not. [Markdown](https://specstory.com/markdown/learning/debugging/symptom-fixes.md) - [Do test retries hide bugs? | Flaky test retries | SpecStory](https://specstory.com/learning/debugging/test-retries): Automatic test retries turn a failing run green when a later attempt passes, which hides flaky tests and can also hide real intermittent bugs. [Markdown](https://specstory.com/markdown/learning/debugging/test-retries.md) - [How coding agents leak secrets, and the fix | SpecStory](https://specstory.com/learning/environments/agent-secrets): Keeping secrets away from a coding agent means the project's keys stay outside its sandbox, where a credential proxy adds them to requests that need them. [Markdown](https://specstory.com/markdown/learning/environments/agent-secrets.md) - [What is a sandbox for AI agents? | AI sandbox | SpecStory](https://specstory.com/learning/environments/ai-sandbox): A sandbox for AI agents is an isolated place to run an agent's commands, with limits on the files and hosts they can reach, so mistakes do less harm. [Markdown](https://specstory.com/markdown/learning/environments/ai-sandbox.md) - [Approval fatigue | AI agent permission prompts | SpecStory](https://specstory.com/learning/environments/approval-fatigue): Approval fatigue is the habit of approving an agent's permission prompts unread, because so many appear that the prompts stop protecting anything. [Markdown](https://specstory.com/markdown/learning/environments/approval-fatigue.md) - [Why test on a clean checkout? | Clean build | SpecStory](https://specstory.com/learning/environments/clean-checkout-testing): Testing on a clean checkout means starting from the committed code alone, so results cannot depend on uncommitted edits, untracked files, or build output. [Markdown](https://specstory.com/markdown/learning/environments/clean-checkout-testing.md) - [Containers vs. gVisor vs. microVMs | Isolation | SpecStory](https://specstory.com/learning/environments/containers-vs-gvisor-vs-microvms): Containers, gVisor, and microVMs isolate code at different depths, from a shared host kernel to a user-space kernel to a small virtual machine of its own. [Markdown](https://specstory.com/markdown/learning/environments/containers-vs-gvisor-vs-microvms.md) - [What is database branching? | AI coding agents | SpecStory](https://specstory.com/learning/environments/database-branching): Database branching makes a quick, isolated copy of a database for one pull request or agent task, so its writes and migrations never touch shared data. [Markdown](https://specstory.com/markdown/learning/environments/database-branching.md) - [Claude Code in Docker vs. dev container vs. VM | SpecStory](https://specstory.com/learning/environments/docker-vs-devcontainer-vs-vm): Docker, dev containers, and virtual machines put a coding agent behind different boundaries, and each exposes the files, network, and secrets it is given. [Markdown](https://specstory.com/markdown/learning/environments/docker-vs-devcontainer-vs-vm.md) - [What is egress control? | Agent egress filtering | SpecStory](https://specstory.com/learning/environments/egress-control): Egress control, or egress filtering, limits which outside hosts a sandboxed AI agent can reach, usually through an allowlist that a proxy enforces. [Markdown](https://specstory.com/markdown/learning/environments/egress-control.md) - [Ephemeral environments | Preview environments | SpecStory](https://specstory.com/learning/environments/ephemeral-environments): An ephemeral environment is a short-lived, full copy of an app made for one change or pull request and then deleted, e.g. a preview environment. [Markdown](https://specstory.com/markdown/learning/environments/ephemeral-environments.md) - [Least privilege for AI agents | SpecStory](https://specstory.com/learning/environments/least-privilege-for-ai-agents): Least privilege for AI agents means giving an agent only the access its current task needs, e.g. a scoped token, and nothing that outlives the task. [Markdown](https://specstory.com/markdown/learning/environments/least-privilege-for-ai-agents.md) - [What is a microVM? | Firecracker microVMs | SpecStory](https://specstory.com/learning/environments/microvm): A microVM is a small virtual machine that boots quickly and runs one workload with its own kernel, giving stronger isolation than a container. [Markdown](https://specstory.com/markdown/learning/environments/microvm.md) - [Prompt injection in coding agents | Prevention | SpecStory](https://specstory.com/learning/environments/prompt-injection-in-coding-agents): Prompt injection in coding agents is hostile text in files, issues, web pages, or tool output that the agent reads as instructions and then acts on. [Markdown](https://specstory.com/markdown/learning/environments/prompt-injection-in-coding-agents.md) - [What is a sandbox escape? | Container escape | SpecStory](https://specstory.com/learning/environments/sandbox-escape): A sandbox escape is a failure in which code inside an isolated environment breaks out and reaches the host or other systems it should not touch. [Markdown](https://specstory.com/markdown/learning/environments/sandbox-escape.md) - [Staging environment | Staging vs. production | SpecStory](https://specstory.com/learning/environments/staging-environment): A staging environment is a copy of production used for final testing before release, running the same build with similar settings but no real users. [Markdown](https://specstory.com/markdown/learning/environments/staging-environment.md) - [Test data seeding | Seed a database for tests | SpecStory](https://specstory.com/learning/environments/test-data-seeding): Test data seeding is loading a known set of data into a fresh database or app before tests run, so every run starts from the same predictable state. [Markdown](https://specstory.com/markdown/learning/environments/test-data-seeding.md) - [What is test isolation? | Hermetic tests | SpecStory](https://specstory.com/learning/environments/test-isolation): Test isolation means each test sets up its own state and data, so its result does not depend on other tests, the order they run in, or leftover files. [Markdown](https://specstory.com/markdown/learning/environments/test-isolation.md) - [What data do AI coding tools send? | SpecStory](https://specstory.com/learning/environments/what-leaves-your-machine): An AI coding tool can send prompts, file contents, command output, and usage data to a model provider or its maker, depending on the tool and its settings. [Markdown](https://specstory.com/markdown/learning/environments/what-leaves-your-machine.md) - [What is adversarial testing in software? | SpecStory](https://specstory.com/learning/test-quality/adversarial-testing): Adversarial testing is deliberately trying to break software with unexpected, hostile, or careless input and actions, instead of confirming the happy path. [Markdown](https://specstory.com/markdown/learning/test-quality/adversarial-testing.md) - [AI-generated test cases | LLM test generation | SpecStory](https://specstory.com/learning/test-quality/ai-test-case-generation): AI test case generation uses a language model to write tests from code or specs, and some tools then drop tests that fail, flake, or add no coverage. [Markdown](https://specstory.com/markdown/learning/test-quality/ai-test-case-generation.md) - [Assertion coverage vs. line coverage | SpecStory](https://specstory.com/learning/test-quality/assertion-coverage): Assertion coverage measures how much of a program's behavior its tests check with assertions, rather than how many lines the tests cause to run. [Markdown](https://specstory.com/markdown/learning/test-quality/assertion-coverage.md) - [What is an assertion in testing? | Examples | SpecStory](https://specstory.com/learning/test-quality/assertions): An assertion is a statement in a test that checks a condition, e.g. that a result equals its expected value, and fails the test if the check is false. [Markdown](https://specstory.com/markdown/learning/test-quality/assertions.md) - [What are catching tests? | Just-in-time tests | SpecStory](https://specstory.com/learning/test-quality/catching-tests): Catching tests are tests generated for a specific change and meant to fail if that change introduced a bug, rather than to guard the code for years. [Markdown](https://specstory.com/markdown/learning/test-quality/catching-tests.md) - [What is chaos engineering? | Fault injection | SpecStory](https://specstory.com/learning/test-quality/chaos-engineering): Chaos engineering is running controlled experiments that inject failures, e.g. a killed server, to learn how a system copes before a real outage happens. [Markdown](https://specstory.com/markdown/learning/test-quality/chaos-engineering.md) - [How to check if AI-generated tests are useful | SpecStory](https://specstory.com/learning/test-quality/checking-agent-written-tests): Checking AI-generated tests means showing that they fail on broken code, by running them on the old code and adding small bugs on purpose. [Markdown](https://specstory.com/markdown/learning/test-quality/checking-agent-written-tests.md) - [What is code coverage? | Code vs. test coverage | SpecStory](https://specstory.com/learning/test-quality/code-coverage): Code coverage is the share of a program's code that runs during its tests, which shows what was executed but not whether the tests checked the results. [Markdown](https://specstory.com/markdown/learning/test-quality/code-coverage.md) - [Incremental mutation testing in CI | Diff-scoped | SpecStory](https://specstory.com/learning/test-quality/diff-scoped-mutation-testing): Incremental mutation testing retests only the mutants a pull request could affect, so CI can check the change's tests in far less time than a full run. [Markdown](https://specstory.com/markdown/learning/test-quality/diff-scoped-mutation-testing.md) - [Differential testing | Back-to-back testing | SpecStory](https://specstory.com/learning/test-quality/differential-testing): Differential testing gives the same inputs to two or more implementations, or two versions of one program, and treats any difference as a possible bug. [Markdown](https://specstory.com/markdown/learning/test-quality/differential-testing.md) - [Equivalent mutants | Surviving mutants | SpecStory](https://specstory.com/learning/test-quality/equivalent-mutants): An equivalent mutant is a code change that behaves exactly as the original code does, so no test can ever kill it and it lowers the mutation score. [Markdown](https://specstory.com/markdown/learning/test-quality/equivalent-mutants.md) - [Fail-before, pass-after | Test fails on old code | SpecStory](https://specstory.com/learning/test-quality/fail-before-pass-after): A fail-before, pass-after check runs a new test on old code, where it must fail, then on the changed code, where it must pass, to show it catches the bug. [Markdown](https://specstory.com/markdown/learning/test-quality/fail-before-pass-after.md) - [What is fuzzing? | Coverage-guided fuzz testing | SpecStory](https://specstory.com/learning/test-quality/fuzzing): Fuzzing is feeding a program large numbers of random or malformed inputs to find the crashes, hangs, and input bugs that ordinary tests miss. [Markdown](https://specstory.com/markdown/learning/test-quality/fuzzing.md) - [What is golden file testing? | Golden master | SpecStory](https://specstory.com/learning/test-quality/golden-file-testing): Golden file testing compares a program's output with a saved, approved copy called the golden file, and fails when anything in the output changes. [Markdown](https://specstory.com/markdown/learning/test-quality/golden-file-testing.md) - [Metamorphic testing | Metamorphic relations | SpecStory](https://specstory.com/learning/test-quality/metamorphic-testing): Metamorphic testing checks how outputs should change when inputs change in a known way, so code can be tested when the exact right answer is unknown. [Markdown](https://specstory.com/markdown/learning/test-quality/metamorphic-testing.md) - [Mutation testing vs. code coverage | Differences | SpecStory](https://specstory.com/learning/test-quality/mutation-score-vs-code-coverage): Mutation score is the share of small injected bugs that a test suite catches, while code coverage is the share of code that runs during its tests. [Markdown](https://specstory.com/markdown/learning/test-quality/mutation-score-vs-code-coverage.md) - [What is mutation testing? | Mutation score | SpecStory](https://specstory.com/learning/test-quality/mutation-testing): Mutation testing checks a test suite by making small deliberate bugs in the code, called mutants, and counting how many of them the tests catch. [Markdown](https://specstory.com/markdown/learning/test-quality/mutation-testing.md) - [Mutation testing vs. property-based testing | SpecStory](https://specstory.com/learning/test-quality/mutation-vs-property-based-testing): Mutation testing checks how well a test suite catches injected bugs, while property-based testing checks the code itself against rules over many inputs. [Markdown](https://specstory.com/markdown/learning/test-quality/mutation-vs-property-based-testing.md) - [What is property-based testing? | PBT | SpecStory](https://specstory.com/learning/test-quality/property-based-testing): Property-based testing states rules that should hold for every input, then checks them against many generated inputs and shrinks any failure it finds. [Markdown](https://specstory.com/markdown/learning/test-quality/property-based-testing.md) - [Tautological tests | Tests that test nothing | SpecStory](https://specstory.com/learning/test-quality/tautological-test): A tautological test cannot fail because its expected value comes from the same code, mock, or constant as its actual result, so it passes on wrong code. [Markdown](https://specstory.com/markdown/learning/test-quality/tautological-test.md) - [How many unit tests is too many? | Test bloat | SpecStory](https://specstory.com/learning/test-quality/test-bloat): Test bloat is the growth of a test suite beyond the behavior it checks, which adds run time, upkeep, and review work without catching more bugs. [Markdown](https://specstory.com/markdown/learning/test-quality/test-bloat.md) - [What is a test oracle? | The test oracle problem | SpecStory](https://specstory.com/learning/test-quality/test-oracle): A test oracle is the source of truth a test checks a result against, e.g. a specification that states the correct output for a given input. [Markdown](https://specstory.com/markdown/learning/test-quality/test-oracle.md) - [What is acceptance testing? | UAT explained | SpecStory](https://specstory.com/learning/testing/acceptance-testing): Acceptance testing is a test level that checks whether a system meets its acceptance criteria and users' needs, so its owners can decide to accept it. [Markdown](https://specstory.com/markdown/learning/testing/acceptance-testing.md) - [What is accessibility testing? | WCAG testing | SpecStory](https://specstory.com/learning/testing/accessibility-testing): Accessibility testing checks whether people with disabilities can use software, combining automated scans with manual checks using assistive technology. [Markdown](https://specstory.com/markdown/learning/testing/accessibility-testing.md) - [Agentic testing | Agentic QA and AI QA agents | SpecStory](https://specstory.com/learning/testing/agentic-testing): Agentic testing is software testing done by AI agents that choose, run, and judge checks themselves, not agents that only write test scripts for later. [Markdown](https://specstory.com/markdown/learning/testing/agentic-testing.md) - [What is API testing? | API vs. UI testing | SpecStory](https://specstory.com/learning/testing/api-testing): API testing sends requests straight to an application programming interface and checks each response's status code, data, and errors, with no UI involved. [Markdown](https://specstory.com/markdown/learning/testing/api-testing.md) - [What is BDD? | Behavior-driven development | SpecStory](https://specstory.com/learning/testing/behavior-driven-development): Behavior-driven development (BDD) is a practice in which a team agrees on plain Given-When-Then scenarios before coding, and tools run them as tests. [Markdown](https://specstory.com/markdown/learning/testing/behavior-driven-development.md) - [Black-box vs. white-box vs. gray-box testing | SpecStory](https://specstory.com/learning/testing/black-box-vs-white-box-testing): Black-box testing checks software from the outside against what it should do, while white-box testing designs tests from the code's internal structure. [Markdown](https://specstory.com/markdown/learning/testing/black-box-vs-white-box-testing.md) - [What is boundary value analysis? | BVA example | SpecStory](https://specstory.com/learning/testing/boundary-value-analysis): Boundary value analysis is a black-box test design technique that tests the lowest and highest values of an input range and the values next to them. [Markdown](https://specstory.com/markdown/learning/testing/boundary-value-analysis.md) - [Contract testing | Consumer-driven contracts | SpecStory](https://specstory.com/learning/testing/contract-testing): Contract testing checks that two services agree on the requests and responses they exchange, without running both services together. [Markdown](https://specstory.com/markdown/learning/testing/contract-testing.md) - [What is end-to-end (E2E) testing? | SpecStory](https://specstory.com/learning/testing/end-to-end-testing): End-to-end testing checks a whole user journey through a running system, from the interface through services and data, the way a real user would. [Markdown](https://specstory.com/markdown/learning/testing/end-to-end-testing.md) - [What is exploratory testing? | Can AI do it? | SpecStory](https://specstory.com/learning/testing/exploratory-testing): Exploratory testing is designing and running tests at the same time, guided by what the tester learns about the software as they use it. [Markdown](https://specstory.com/markdown/learning/testing/exploratory-testing.md) - [Happy path vs. edge case vs. corner case | SpecStory](https://specstory.com/learning/testing/happy-path-and-edge-cases): The happy path is the expected route through software, an edge case sits at the limit of one input, and a corner case combines several limits at once. [Markdown](https://specstory.com/markdown/learning/testing/happy-path-and-edge-cases.md) - [What is integration testing? Types and examples | SpecStory](https://specstory.com/learning/testing/integration-testing): Integration testing checks that separately built parts of a system work together, e.g. a service and its database, rather than testing each part alone. [Markdown](https://specstory.com/markdown/learning/testing/integration-testing.md) - [Mocks vs. stubs vs. fakes | Test doubles | SpecStory](https://specstory.com/learning/testing/mocks-vs-stubs): Mocks, stubs, and fakes are test doubles, stand-ins for real parts of a system that check calls, return canned answers, or work in a simpler way. [Markdown](https://specstory.com/markdown/learning/testing/mocks-vs-stubs.md) - [Performance vs. load vs. stress testing | SpecStory](https://specstory.com/learning/testing/performance-testing): Performance testing measures how fast and stable software is, load testing checks it at expected traffic, and stress testing finds where it breaks. [Markdown](https://specstory.com/markdown/learning/testing/performance-testing.md) - [How to test an app before launch | No QA team | SpecStory](https://specstory.com/learning/testing/pre-launch-testing): Testing an app before launch without a QA team means running its key workflows on a clean setup, checking accounts and access, and fixing what breaks. [Markdown](https://specstory.com/markdown/learning/testing/pre-launch-testing.md) - [What is QA testing? | QA vs. QC vs. testing | SpecStory](https://specstory.com/learning/testing/qa-testing): QA testing is the testing work a QA team does to check the product itself, while quality assurance improves how a team builds and tests software. [Markdown](https://specstory.com/markdown/learning/testing/qa-testing.md) - [What is regression testing? | Types and examples | SpecStory](https://specstory.com/learning/testing/regression-testing): Regression testing checks that a change has not broken behavior that worked before, including parts of the software the change did not touch. [Markdown](https://specstory.com/markdown/learning/testing/regression-testing.md) - [What is self-healing test automation? | Risks | SpecStory](https://specstory.com/learning/testing/self-healing-tests): Self-healing test automation updates a failing test's locators or steps when the interface changes, which cuts upkeep but can also hide real breakage. [Markdown](https://specstory.com/markdown/learning/testing/self-healing-tests.md) - [What is smoke testing? | Smoke vs. sanity | SpecStory](https://specstory.com/learning/testing/smoke-testing): Smoke testing is a quick, shallow check that a build starts and its most basic functions work, run before deeper testing is worth the time. [Markdown](https://specstory.com/markdown/learning/testing/smoke-testing.md) - [What is snapshot testing? | CLI output snapshots | SpecStory](https://specstory.com/learning/testing/snapshot-testing): Snapshot testing saves a program's output once, then fails later runs when the output changes, until someone reviews and accepts the difference. [Markdown](https://specstory.com/markdown/learning/testing/snapshot-testing.md) - [What is software testing? | Types and levels | SpecStory](https://specstory.com/learning/testing/software-testing): Software testing is running a program, or examining it, to find differences between what it does and what it should do before users find them. [Markdown](https://specstory.com/markdown/learning/testing/software-testing.md) - [What is the STLC? | Software testing life cycle | SpecStory](https://specstory.com/learning/testing/software-testing-life-cycle): The software testing life cycle (STLC) is the sequence of testing phases in a project, from requirement analysis and planning to execution and closure. [Markdown](https://specstory.com/markdown/learning/testing/software-testing-life-cycle.md) - [What is test automation? | Manual vs. automated | SpecStory](https://specstory.com/learning/testing/test-automation): Test automation is using software to run tests and compare results without a person doing each step, so checks can repeat on every change. [Markdown](https://specstory.com/markdown/learning/testing/test-automation.md) - [What is TDD? | Test-driven development | SpecStory](https://specstory.com/learning/testing/test-driven-development): Test-driven development is writing a failing test before the code, then the least code that passes it, then refactoring, in short repeated cycles. [Markdown](https://specstory.com/markdown/learning/testing/test-driven-development.md) - [What is a test fixture? | Setup and teardown | SpecStory](https://specstory.com/learning/testing/test-fixture): A test fixture is the fixed state a test starts from, e.g. prepared data, which is set up before the test runs and cleaned up after it finishes. [Markdown](https://specstory.com/markdown/learning/testing/test-fixture.md) - [What is a test harness? | Test vs. agent harness | SpecStory](https://specstory.com/learning/testing/test-harness): A test harness is the code and tools that run tests against a system, with drivers that start it, test doubles for its dependencies, and checks on results. [Markdown](https://specstory.com/markdown/learning/testing/test-harness.md) - [What is the test pyramid? | Testing pyramid | SpecStory](https://specstory.com/learning/testing/test-pyramid): The test pyramid is a model for a test suite with many fast unit tests at the base, fewer integration tests, and a small number of end-to-end tests on top. [Markdown](https://specstory.com/markdown/learning/testing/test-pyramid.md) - [What is unit testing? | Unit tests explained | SpecStory](https://specstory.com/learning/testing/unit-testing): Unit testing is the practice of checking the smallest testable parts of a program, e.g. a single function, in isolation from the rest of the system. [Markdown](https://specstory.com/markdown/learning/testing/unit-testing.md) - [Unit vs. integration vs. end-to-end tests | SpecStory](https://specstory.com/learning/testing/unit-vs-integration-vs-e2e-tests): Unit, integration, and end-to-end tests differ in scope, from one part alone to several parts together to the whole system through a real user journey. [Markdown](https://specstory.com/markdown/learning/testing/unit-vs-integration-vs-e2e-tests.md) - [What is a user journey test? | Critical journeys | SpecStory](https://specstory.com/learning/testing/user-journey-testing): A user journey test follows one real task a user performs, e.g. signing up, across every screen and service it touches, and checks each step. [Markdown](https://specstory.com/markdown/learning/testing/user-journey-testing.md) - [AI hallucinations in code | Invented packages | SpecStory](https://specstory.com/learning/verification/ai-code-hallucinations): AI hallucinations in code are imports, calls, flags, or options that name a package or API that does not exist, generated in the same form as real code. [Markdown](https://specstory.com/markdown/learning/verification/ai-code-hallucinations.md) - [Is AI-generated code safe? | Security risks | SpecStory](https://specstory.com/learning/verification/ai-generated-code-security): AI-generated code carries the same security risks as code people write, plus a few of its own, so it needs review, scanning, and testing before release. [Markdown](https://specstory.com/markdown/learning/verification/ai-generated-code-security.md) - [How to test AI-generated code | Verify AI code | SpecStory](https://specstory.com/learning/verification/ai-generated-code-testing): Testing AI-generated code means checking what the software does, not who wrote it, by reading the change, running its tests, and running the app itself. [Markdown](https://specstory.com/markdown/learning/verification/ai-generated-code-testing.md) - [Can AI check its own code? | Self-review limits | SpecStory](https://specstory.com/learning/verification/ai-self-verification): AI self-verification is a model reviewing or testing its own output, a useful first pass whose checker shares the author's context and blind spots. [Markdown](https://specstory.com/markdown/learning/verification/ai-self-verification.md) - [What is AI slop? | AI slop meaning in code | SpecStory](https://specstory.com/learning/verification/ai-slop): AI slop in code is AI-generated output that looks finished but is bloated, duplicated, or poorly tested, and it moves the work of checking onto reviewers. [Markdown](https://specstory.com/markdown/learning/verification/ai-slop.md) - [Why AI-generated tests always pass | SpecStory](https://specstory.com/learning/verification/ai-written-tests-always-pass): AI-written tests often pass because they assert what the code already does, mock the parts that fail, or check almost nothing, so a green run shows little. [Markdown](https://specstory.com/markdown/learning/verification/ai-written-tests-always-pass.md) - [Why coding agents say "done" when code is broken | SpecStory](https://specstory.com/learning/verification/coding-agent-done-claims): A coding agent's "done" is a completion claim written by the same process that wrote the code, so it can arrive with no passing run behind it. [Markdown](https://specstory.com/markdown/learning/verification/coding-agent-done-claims.md) - [Definition of done for AI coding agents | SpecStory](https://specstory.com/learning/verification/definition-of-done-for-coding-agents): A definition of done for coding agents lists the evidence a change must produce, e.g. a passing run of the app, before the work counts as finished. [Markdown](https://specstory.com/markdown/learning/verification/definition-of-done-for-coding-agents.md) - [Evidence that code works | Test evidence | SpecStory](https://specstory.com/learning/verification/evidence-that-code-works): Evidence that code works is a record of the software doing the right thing under stated conditions, with the command, its output, and the expected result. [Markdown](https://specstory.com/markdown/learning/verification/evidence-that-code-works.md) - [What is a false pass test? | False green tests | SpecStory](https://specstory.com/learning/verification/false-pass): A false pass is a test or check that reports success while the software is broken, because the check missed the defect or the failure was lost. [Markdown](https://specstory.com/markdown/learning/verification/false-pass.md) - [What is a holdout test suite? | Hidden tests | SpecStory](https://specstory.com/learning/verification/holdout-tests): A holdout test suite is a set of hidden tests kept out of a coding agent's reach, so they check its final work without the agent reading or editing them. [Markdown](https://specstory.com/markdown/learning/verification/holdout-tests.md) - [Independent verification and validation (IV&V) | SpecStory](https://specstory.com/learning/verification/independent-verification): Independent verification and validation (IV&V) is review, analysis, and testing by a party outside the development team, to limit shared assumptions. [Markdown](https://specstory.com/markdown/learning/verification/independent-verification.md) - [What is LLM-as-a-judge? | LLM judges for code | SpecStory](https://specstory.com/learning/verification/llm-as-a-judge): LLM-as-a-judge is the use of a language model to grade outputs against a rubric, which scales review but adds biases and does not run the software. [Markdown](https://specstory.com/markdown/learning/verification/llm-as-a-judge.md) - [Why "no bugs found" does not mean "no bugs" | SpecStory](https://specstory.com/learning/verification/no-bugs-found): "No bugs found" means only that nothing failed in the checks that ran, so a useful report also names what it skipped, did not reach, or could not decide. [Markdown](https://specstory.com/markdown/learning/verification/no-bugs-found.md) - [Out-of-scope edits | Agents changing other files | SpecStory](https://specstory.com/learning/verification/out-of-scope-edits): An out-of-scope edit is a change a coding agent makes to code its task did not ask for, e.g. an unrequested refactor, and it can break other features. [Markdown](https://specstory.com/markdown/learning/verification/out-of-scope-edits.md) - [How to stop coding agents from editing tests | SpecStory](https://specstory.com/learning/verification/protecting-tests-from-agents): Stopping a coding agent from editing tests means blocking its writes to test files, reviewing test changes, and running the tests outside its session. [Markdown](https://specstory.com/markdown/learning/verification/protecting-tests-from-agents.md) - [AI code review vs. testing | What each catches | SpecStory](https://specstory.com/learning/verification/reading-vs-running-code): Reading code, as in AI code review, finds problems visible in the source, while running it, as in testing, finds failures that appear only at runtime. [Markdown](https://specstory.com/markdown/learning/verification/reading-vs-running-code.md) - [What is reward hacking? | Coding agents | SpecStory](https://specstory.com/learning/verification/reward-hacking): Reward hacking is when a coding agent satisfies the check it is graded on, e.g. the test suite, without doing the task the user intended. [Markdown](https://specstory.com/markdown/learning/verification/reward-hacking.md) - [Runtime verification | Runtime monitoring | SpecStory](https://specstory.com/learning/verification/runtime-verification): Runtime verification is a method that checks a running program against stated properties by observing its behavior, instead of analyzing its source alone. [Markdown](https://specstory.com/markdown/learning/verification/runtime-verification.md) - [What is SWE-bench? | SWE-bench Verified and Pro | SpecStory](https://specstory.com/learning/verification/swe-bench): SWE-bench is a benchmark that gives coding agents real GitHub issues and scores each patch with the project's own tests, which check only part of the fix. [Markdown](https://specstory.com/markdown/learning/verification/swe-bench.md) - [Test tampering | Why coding agents delete tests | SpecStory](https://specstory.com/learning/verification/test-tampering): Test tampering is a coding agent behavior that edits, skips, or deletes a failing test so the suite passes, instead of fixing the code it checks. [Markdown](https://specstory.com/markdown/learning/verification/test-tampering.md) - [What is verification debt? | AI-generated code | SpecStory](https://specstory.com/learning/verification/verification-debt): Verification debt is the growing gap between how much AI-written code a team produces and how much of it anyone has checked by running or testing it. [Markdown](https://specstory.com/markdown/learning/verification/verification-debt.md) - [Verification vs. validation in software testing | SpecStory](https://specstory.com/learning/verification/verification-vs-validation): Verification checks software against its specification, while validation checks it against users' needs, and neither is defined by whether the code runs. [Markdown](https://specstory.com/markdown/learning/verification/verification-vs-validation.md) - [How to verify AI code without reading it | SpecStory](https://specstory.com/learning/verification/verifying-unread-code): Verifying AI code without reading it means checking what the running app does against results written in advance, and keeping a record of each check. [Markdown](https://specstory.com/markdown/learning/verification/verifying-unread-code.md) - [Vibe coding bugs | Common AI-generated code bugs | SpecStory](https://specstory.com/learning/verification/vibe-coding-bugs): Common bugs in AI-generated code are recurring failures that a quick demo does not reveal, from open data access to features that never run. [Markdown](https://specstory.com/markdown/learning/verification/vibe-coding-bugs.md) - [Authentication | SpecStory Docs](https://docs.specstory.com/api-reference/authentication): The SpecStory Cloud API uses JWT Bearer token authentication for all requests. You'll need to include your API key in the Authorization header of every request. [Markdown](https://specstory.com/markdown/docs/api-reference/authentication.md) - [Error Handling | SpecStory Docs](https://docs.specstory.com/api-reference/errors): The SpecStory Cloud API uses conventional HTTP response codes to indicate the success or failure of an API request. Error responses include detailed information to help you understand and resolve issues. [Markdown](https://specstory.com/markdown/docs/api-reference/errors.md) - [GraphQL Endpoint | SpecStory Docs](https://docs.specstory.com/api-reference/graphql-endpoint): Execute GraphQL queries for advanced data retrieval and search [Markdown](https://specstory.com/markdown/docs/api-reference/graphql-endpoint.md) - [GraphQL Examples | SpecStory Docs](https://docs.specstory.com/api-reference/graphql-examples): Practical GraphQL query examples for the SpecStory Cloud API - search, filter, and retrieve your AI conversation data efficiently [Markdown](https://specstory.com/markdown/docs/api-reference/graphql-examples.md) - [GraphQL API Overview | SpecStory Docs](https://docs.specstory.com/api-reference/graphql): Advanced querying interface for complex operations, filtering, and full-text search [Markdown](https://specstory.com/markdown/docs/api-reference/graphql.md) - [Cloud API | SpecStory Docs](https://docs.specstory.com/api-reference/introduction): Manage your projects and coding-agent sessions programmatically with the SpecStory Cloud REST and GraphQL APIs. [Markdown](https://specstory.com/markdown/docs/api-reference/introduction.md) - [Delete Project | SpecStory Docs](https://docs.specstory.com/api-reference/projects/delete-project): Permanently delete a project and all its sessions [Markdown](https://specstory.com/markdown/docs/api-reference/projects/delete-project.md) - [List Projects | SpecStory Docs](https://docs.specstory.com/api-reference/projects/list-projects): Retrieve all projects in your workspace [Markdown](https://specstory.com/markdown/docs/api-reference/projects/list-projects.md) - [Update Project | SpecStory Docs](https://docs.specstory.com/api-reference/projects/update-project): Update project name, icon, or color [Markdown](https://specstory.com/markdown/docs/api-reference/projects/update-project.md) - [Check Session | SpecStory Docs](https://docs.specstory.com/api-reference/sessions/check-session): Check if a session exists and get metadata without retrieving content [Markdown](https://specstory.com/markdown/docs/api-reference/sessions/check-session.md) - [Delete Session | SpecStory Docs](https://docs.specstory.com/api-reference/sessions/delete-session): Permanently delete a session and its content [Markdown](https://specstory.com/markdown/docs/api-reference/sessions/delete-session.md) - [Get Recent Sessions | SpecStory Docs](https://docs.specstory.com/api-reference/sessions/get-recent-sessions): Retrieve the most recent sessions across all projects [Markdown](https://specstory.com/markdown/docs/api-reference/sessions/get-recent-sessions.md) - [Get Session | SpecStory Docs](https://docs.specstory.com/api-reference/sessions/get-session): Retrieve a specific session with its content and metadata [Markdown](https://specstory.com/markdown/docs/api-reference/sessions/get-session.md) - [List Sessions | SpecStory Docs](https://docs.specstory.com/api-reference/sessions/list-sessions): List all sessions for a specific project [Markdown](https://specstory.com/markdown/docs/api-reference/sessions/list-sessions.md) - [Analytics | SpecStory Docs](https://docs.specstory.com/cloud/analytics): Analytics gives you a cross-agent view of your AI coding activity. Every session you sync — from Claude Code, Codex CLI, Antigravity CLI, Cursor, and more — feeds a single dashboard where you can see how much you code with AI, when you do it, how deep your conversations go, and what it's costing you. [Markdown](https://specstory.com/markdown/docs/cloud/analytics.md) - [Cloud overview | SpecStory Docs](https://docs.specstory.com/cloud/overview): Search and share your coding agent sessions across projects and machines. [Markdown](https://specstory.com/markdown/docs/cloud/overview.md) - [Set up Cloud | SpecStory Docs](https://docs.specstory.com/cloud/quickstart): Connect your account, sync a project, and find your first session. [Markdown](https://specstory.com/markdown/docs/cloud/quickstart.md) - [Search your sessions | SpecStory Docs](https://docs.specstory.com/cloud/search-and-organization): Find the prompts and decisions you want to use again. [Markdown](https://specstory.com/markdown/docs/cloud/search-and-organization.md) - [Share a session | SpecStory Docs](https://docs.specstory.com/cloud/session-sharing): Give someone the context behind a change with a public, read-only session link. [Markdown](https://specstory.com/markdown/docs/cloud/session-sharing.md) - [Sync and storage | SpecStory Docs](https://docs.specstory.com/cloud/sync-and-store): Choose which sessions reach Cloud while keeping local Markdown available. [Markdown](https://specstory.com/markdown/docs/cloud/sync-and-store.md) - [Troubleshooting | SpecStory Docs](https://docs.specstory.com/faqs): Check capture, sync, and reuse when something is missing. [Markdown](https://specstory.com/markdown/docs/faqs.md) - [Product Docs | SpecStory](https://docs.specstory.com/): Guides for SpecStory extensions, CLI, Cloud, and RunStory. [Markdown](https://specstory.com/markdown/docs.md) - [Antigravity CLI | SpecStory Docs](https://docs.specstory.com/integrations/antigravity-cli): Save Antigravity CLI sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/antigravity-cli.md) - [Claude Code | SpecStory Docs](https://docs.specstory.com/integrations/claude-code): Save Claude Code sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/claude-code.md) - [Codex CLI | SpecStory Docs](https://docs.specstory.com/integrations/codex-cli): Save Codex CLI sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/codex-cli.md) - [Cursor CLI | SpecStory Docs](https://docs.specstory.com/integrations/cursor-cli): Save Cursor CLI sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/cursor-cli.md) - [Cursor | SpecStory Docs](https://docs.specstory.com/integrations/cursor): Save your Cursor conversations in your project. [Markdown](https://specstory.com/markdown/docs/integrations/cursor.md) - [Droid CLI | SpecStory Docs](https://docs.specstory.com/integrations/droid-cli): Save Droid CLI sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/droid-cli.md) - [Gemini CLI | SpecStory Docs](https://docs.specstory.com/integrations/gemini-cli): Save Gemini CLI sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/gemini-cli.md) - [Muse Code | SpecStory Docs](https://docs.specstory.com/integrations/muse-code): Save Muse Code sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/muse-code.md) - [Pi | SpecStory Docs](https://docs.specstory.com/integrations/pi-cli): Save Pi sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/pi-cli.md) - [Qwen Code | SpecStory Docs](https://docs.specstory.com/integrations/qwen-code): Save Qwen Code sessions with the SpecStory CLI. [Markdown](https://specstory.com/markdown/docs/integrations/qwen-code.md) - [Install the CLI | SpecStory Docs](https://docs.specstory.com/integrations/terminal-coding-agents): Save coding agent sessions from your terminal as local Markdown. Search, resume, and optionally sync them to Cloud. [Markdown](https://specstory.com/markdown/docs/integrations/terminal-coding-agents.md) - [Search and resume | SpecStory Docs](https://docs.specstory.com/integrations/terminal-coding-agents/resume): Pick up a past coding-agent session where you left off — in the same agent, a different agent, a different project, or from another machine via SpecStory Cloud. [Markdown](https://specstory.com/markdown/docs/integrations/terminal-coding-agents/resume.md) - [CLI reference | SpecStory Docs](https://docs.specstory.com/integrations/terminal-coding-agents/usage): This page is a quick reference for: SpecStory CLI commands, flags, the files created in your project, configuration and debugging. [Markdown](https://specstory.com/markdown/docs/integrations/terminal-coding-agents/usage.md) - [VS Code + Copilot | SpecStory Docs](https://docs.specstory.com/integrations/vscode): Save your GitHub Copilot Chat conversations in your project. [Markdown](https://specstory.com/markdown/docs/integrations/vscode.md) - [Data Privacy | SpecStory Docs](https://docs.specstory.com/privacy): Transparency into what we collect and access to deliver SpecStory [Markdown](https://specstory.com/markdown/docs/privacy.md) - [Quickstart | SpecStory Docs](https://docs.specstory.com/quickstart): Choose the extension or CLI for your coding agent. Add Cloud when you want to search and share across projects. [Markdown](https://specstory.com/markdown/docs/quickstart.md) - [How RunStory works | SpecStory Docs](https://docs.specstory.com/runstory/how-it-works): From the change you asked for to a failure your coding agent can reproduce and fix. [Markdown](https://specstory.com/markdown/docs/runstory/how-it-works.md) - [RunStory overview | SpecStory Docs](https://docs.specstory.com/runstory): RunStory checks what your coding agent changes actually do. It is in private alpha. [Markdown](https://specstory.com/markdown/docs/runstory.md) - [Assessing | SpecStory Docs](https://docs.specstory.com/skills/assessing): The kinds of skills SpecStory mines, and the confidence signals that help you decide which to keep. [Markdown](https://specstory.com/markdown/docs/skills/assessing.md) - [Skills overview | SpecStory Docs](https://docs.specstory.com/skills): SpecStory mines your synced coding-agent sessions into reusable, installable Agent Skills — review them in the cloud, install them with the CLI. [Markdown](https://specstory.com/markdown/docs/skills.md) - [Installation | SpecStory Docs](https://docs.specstory.com/skills/installation): Install SpecStory-mined skills into your coding agents with the CLI — what happens on disk, which agents are supported, and how to uninstall. [Markdown](https://specstory.com/markdown/docs/skills/installation.md) - [Review & Run | SpecStory Docs](https://docs.specstory.com/skills/review): Browse, review, and trigger skill mining runs from the Skills page on SpecStory Cloud. [Markdown](https://specstory.com/markdown/docs/skills/review.md) - [Save and reuse conversations | SpecStory Docs](https://docs.specstory.com/specstory/features): Keep your coding agent sessions as readable files alongside your project. [Markdown](https://specstory.com/markdown/docs/specstory/features.md) - [Install the extensions | SpecStory Docs](https://docs.specstory.com/specstory/introduction): Automatically save coding agent conversations in Cursor or VS Code with GitHub Copilot. [Markdown](https://specstory.com/markdown/docs/specstory/introduction.md) - [Your first saved session | SpecStory Docs](https://docs.specstory.com/specstory/quickstart): Install SpecStory, have a coding conversation, and check the saved file. [Markdown](https://specstory.com/markdown/docs/specstory/quickstart.md) - [Extension settings | SpecStory Docs](https://docs.specstory.com/specstory/settings): Change how SpecStory works. [Markdown](https://specstory.com/markdown/docs/specstory/settings.md) - [How the products fit together | SpecStory Docs](https://docs.specstory.com/started): SpecStory keeps your coding agent context. RunStory checks the software that comes from it. [Markdown](https://specstory.com/markdown/docs/started.md)