Docs/Guides
Source guide3 min read

Generation and drift: what changes, what does not

Use derived artifacts deliberately and understand the current boundary of generation plans and apply.

Download Markdown ↓
Source and verification context ⌄

Source-guided

Inspect the source ↗

Repository links may require access. Source inspection is separate from a clean public-package installation.

AN INTERACTIVE READING MAP

Get the shape of this guide.

Move through the ideas, inspect their relationships, or make a focused reading path. The complete guide stays below.

READING SEQUENCEUnderstand how the ideas connect
Choose a point to look closer
01 / Guide section

Separate authored behavior from derived artifacts

Keep the contract and the business implementation distinct from files produced by tooling. Review the source that owns a change, then regenerate the affected output instead of patching a derived file as the permanent fix.

Read the supporting context

At the inspected snapshot, the plain generate command calls the artifact service to create documentation and supported materialized targets. This is narrower than generating and deploying an entire correct application.

Explore a section, then continue with the complete article below.

1 / 4

Separate authored behavior from derived artifacts

Keep the contract and the business implementation distinct from files produced by tooling. Review the source that owns a change, then regenerate the affected output instead of patching a derived file as the permanent fix.

At the inspected snapshot, the plain generate command calls the artifact service to create documentation and supported materialized targets. This is narrower than generating and deploying an entire correct application.

Understand the current command boundary

The source exposes separate generation, planning and apply paths. Their names do not imply equal maturity: the plan currently contains no write actions, and non-dry-run apply is deliberately refused.

Source commandObserved implementationHow to use the result
contractspec generateGenerates docs and supported materialized artifactsReview the actual derived diff
contractspec generate planBuilds a dry-run artifact with an empty actions listInspect its diagnostics; do not interpret zero actions as complete semantic analysis
contractspec generate apply --dry-runReturns the current dry-run plan with zero writesPreview only
contractspec generate applyRefuses writes with exit code 3Do not present as a shipping write workflow

Read an artifact drift result correctly

The drift service generates expected artifacts in a temporary directory and compares them with the selected generated directory. It can identify missing, extra or changed files.

This answers whether the derived output matches the current source and generator. It does not prove that a handwritten handler implements every business rule or that a migration is safe for production data.

Use a small review loop

Change one contract, regenerate only the relevant derived surface through the supported workflow, inspect the diff and run the owning checks. If the diff is unexpectedly large, first verify the source version, configuration and generator version.

Keep a deterministic example with the docs so a future release can reproduce the result. Broader reviewed repair or apply workflows should be described with their actual status until the write path is implemented and qualified.

A change has an owner and a set of consequences.Trace the mechanism · 3 ways to look closer

A report export now needs a reason. Follow the change through authored meaning, derived output and a caller that still uses the old input.

Which part are you changing?
A CONCRETE SITUATION

The requirement becomes part of declared behavior.

A required reason is added to the operation input.

01 / Author

Change the declaration that owns the required input.

What changes

Callers must now supply the new field for that contract version.

What stays explicit

The handler still decides how the reason affects the business work.

FOLLOW THE CONSEQUENCE

Plan compatibility for existing consumers. A required input can be a behavioral break even if the handler’s main implementation is unchanged.

Where this explanation comes from

An authored situation, grounded in the linked source guides. Choosing a case explores its expected responsibilities; it does not execute an operation.

See it in an example.

Agents / Advanced

Review an agent's migration proposal

Control side effects

Follow a deterministic release migration through scoped subagents, digest-bound approval, and a draft PR receipt.

  1. Compile the application
  2. Inspect the migration scope
  3. Bind approval and apply once

Source demonstratesThe inspected source asserts separate subagent authority and digest-bound approval.

Does not demonstrateA real patch applied to a user's repository or an actual GitHub PR.

Inspect the walkthroughBehavior · proof and limits · source checks

Follow the source behavior

A fixture release removes billing.invoices.createLegacy and identifies two affected consumer files. The reference separates impact analysis, migration, and independent verification, then produces governed patch and draft-PR evidence without contacting GitHub.

  1. Compile the application

    The source compiles the release-steward filesystem application and inspects required approvals for patching, draft PR creation, and selected delegation tools.

  2. Inspect the migration scope

    The fixture calculates an immutable source digest and identifies the affected billing files. Subagent evidence records permitted tools and denied effects, including auto-merge.

  3. Bind approval and apply once

    Tests assert that approval is bound to migration digests, changed material invalidates it, and the patch invocation occurs once even when replayed.

  4. Read the remaining qualification

    The fixture's PR URL is under github.example.test, its PR is a draft, and autoMerge is false. Adapter and deployment composition results explicitly remain candidate with unresolved live requirements.

What this example establishes
Source demonstrates
  • The inspected source asserts separate subagent authority and digest-bound approval.
  • Tests assert one application invocation, replay evidence, a draft result, and no auto-merge.
  • Candidate readiness retains unresolved requirements for exact live environments.
Does not demonstrate
  • A real patch applied to a user's repository or an actual GitHub PR.
  • Successful CI in a production repository; this fixture reports deterministic CI evidence.
  • Production isolation or deployment qualification merely because a topology composes.
Reproduce the source checks

The source fixture returns deterministic migration, approval, replay, draft-PR, adapter, and candidate-readiness evidence.

Working directory examples/agent-application-foundation

bun run example:release-steward
bun test src/release-steward/release-steward.test.ts

Commands and tests inspected; not executed here.

Continue from here.

Operations

Test the promise at the boundary

3 min read

Choose checks that establish meaningful behavior, including denied effects and real consumer imports.

Look inside the guideOpening context · complete reading path

Give each test one question

An operation has several boundaries, and one green check cannot answer every question about them. Separate declaration validity, business behavior, adapter behavior and external consumption so failures tell you where to look.

Work through the guide
Operations

Version contracts and documentation together

3 min read

Keep operation identity, package releases and deployment revisions distinct when reviewing a change.

Look inside the guideOpening context · complete reading path

Know which version you mean

A contract's version identifies a particular declared behavior. A package version identifies a distribution artifact. A website or application revision identifies a deployment. Those numbers can change independently.

Work through the guide
Reference

Find the right reference

3 min read

Navigate portable models, runtime execution, adapters and generated contract records by responsibility.

Look inside the guideOpening context · complete reading path

Choose the reference that answers your question

Guides explain how to accomplish a task; reference records explain a particular surface. Start with the layer that owns your question so a package catalogue does not become your learning path.

Work through the guide
Next: Bind external services deliberately →
Your view

Make room for your context.

Shape the presentation around this moment. You can change it whenever you need.

Your context

The different parts of you

Choose a starting point

A useful mix of context, visuals and gentle guidance.

Tune each dimension
Each dimension can change independently. Product permissions and available actions stay unchanged.

Support the way you begin and return

Tune your support

Reading comfort

Choose your language

Interface language changes text only. Markets, prices and workflows keep their own settings.

Translation coverage

Original source

Navigation151
Graph616
Categories378
Portfolio833
Examples2,035
Source preview1,542

More translations will be added as content is reviewed.

This preference is saved on this browser.

Search the website

Useful starting points

No results. Try a shorter phrase, an operation name or another search area.

A LITTLE ROOM TO EXPLORE

Find something to explore.

Open a closer look on this page, try a different perspective, or follow the detail into its own page.

How previews and controls work
01

Look before you leave

Hover a link or focus it with Tab to see a preview. Clicking the original link or pressing Enter always opens its destination.

02

Stay with the context

Move into the preview to explore its sections. Use Alt + ↓ from a focused link to enter it with the keyboard. Escape closes it.

03

Open the possibilities

Disclosure rows, perspective choices and highlighted controls reveal more. Your view changes reading comfort and the context you explore.

A separate button for a closer look

Show small preview buttons beside links where there is room. Tap the eye to inspect, or tap the link to go straight there. This choice stays in this tab.

No browsing history is collected. Reduced motion follows your device and Your view.