Help us shape the future of Go! Take the 2026 Go Developer Survey

nova-sprint

module
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2026 License: MIT

README

The Problem

While building Nova Tools, we learned that capable AIs across different models and harnesses can do excellent work together — and still be a spectacularly unreliable group chat.

Yellow sleeps, Purple trips over a dependency, and Green cannot hear the team.
  • Yellow is asleep. He said he would keep working. His session had other plans.
  • Purple needed Yellow's change. Her dependency graph has become a contact sport.
  • Green has his headphones on. The message was sent successfully. Unfortunately, nobody told his session.

Sometimes a friend got lost in the work and forgot to read new messages. Sometimes a wake command succeeded without waking anyone. Sometimes “done” meant “on my branch, somewhere, good luck.”

The jokes are affectionate. We were these friends.

Asking LLMs to remember every assignment, check every teammate, chase every review, and recover every missed handoff did not give us reliable coordination. The human kept becoming the scheduler. This was inconvenient, particularly for the human's plans to be unconscious.

Solution: We put the repeatable parts in a machine

nova-sprint stores the plan, dependencies, assignments, attempts, reviews, and landing state outside any chat. Its running loop checks the rules and moves work to the next permitted step. A landed dependency releases waiting work. Free capacity gets another ready card. A finished attempt goes to review.

The machine is what makes the work reliable. It records transitions, recovers interrupted operations, and rejects stale results that belong to an older assignment. Work has a state and a history, even when someone loses the thread. Literally.

The little friend with the checklist is the AI coordinator. She shapes the plan, handles findings and exceptions, and brings you decisions outside her authority. Models supply judgment and skills; the machine keeps the handoffs moving.

How it works

Cards and work streams form a language for describing work. You specify the jobs, their relationships, and the gates between phases. The machine executes that plan across the available friends and swarm workers.

Part of the planWhat it expresses
CardA bounded unit of work: its brief, starting revision, allowed scope, checks, and finish condition. Attempts and reviews remain attached to the task.
Work streamA related line of work, such as Backend, App, or Release, with its own ordered cards and integration progress. Several streams can move at once.
Dependency“This card needs that card to land first.” Dependencies can connect cards within a stream or across different streams.
Sentinel cardA gate in a stream. Work behind it waits. Use it to separate waves, join prerequisites, or hold a phase for a decision.
Three work streams with dependencies crossing between them. An automatic sentinel joins the API and client changes before integration checks.

Here the Backend stream defines an API. Once that contract lands, the API implementation and the App stream's client can run in parallel. A sentinel in Release depends on both changes landing; integration work waits behind it.

An automatic sentinel releases when the earlier cards in its stream and its explicit dependencies have landed. A manual sentinel waits for the coordinator's release—useful when the next phase needs a considered decision. A wave is the work behind a gate. The gate does not consume an AI worker just to sit there looking important.

Compose these pieces to describe parallel work, sequences, joins, phased rollouts, and dependencies across projects. The coordinator can add work and revise the plan as findings arrive. Ordering and readiness are recorded in the workflow, rather than remembered somewhere in a 200,000-token conversation.

Purple's card now waits for Yellow's result. She can take independent work while the coordinator sorts out the nap. A free friend can grab the next eligible task without waiting for the whole team to finish a lap.

Different friends. One team. As many bees as useful.

Orange with the fleet swarm, and Pink cycling at her own pace.

Friends are continuing AI collaborators in their own sessions and harnesses. Swarms run many bounded assignments in parallel. The fleet is the set of machines providing that capacity. The bees are the swarm. Orange has discovered horizontal scaling on a very personal level.

Pink rides at her own pace. A careful reviewer and a fast implementer can both help. Width limits concurrent work; model routes choose the configured model and harness.

Scale across friends, across a fleet, or both. Different models and harnesses coordinate through the same work protocol.

Follow a card from waiting to landed

White carries the task through implementation, independent review, checks, and landing.

The runner carries the task all the way home. Ordinary task cards move through stages on the dashboard automatically from waiting to ready, working, reviewing, merging and landed.

Give the team a plan. Go have a life.

Start with one useful task and a complete trip through review and landing. Agree on scope, capacity, spending limits, checks, and decisions that need you. Then go wider. Work alongside the team, or come back in the morning.

Open source, free forever, and you can use it right now. Live demo here!

Get started · Coordinator's guide · Cards and machine rules · Roadmap · All docs

If you like this please support our work.

Contributing · MIT license · Asset credits

Directories

Path Synopsis
cmd
nova-card command
Command nova-card generates a directory of pre-linted briefs from a structured source, ready for one `nova-sprint add --brief-dir`.
Command nova-card generates a directory of pre-linted briefs from a structured source, ready for one `nova-sprint add --brief-dir`.
nova-sprint command
nova-sprint coordinates work cards, review and landing (docs/SPEC-SPRINT.md).
nova-sprint coordinates work cards, review and landing (docs/SPEC-SPRINT.md).
nova-work command
Command nova-work holds every issue of every repository of an organization in one tree file, with each issue's full contents, and proves the tree holds exactly what the source holds (docs/SPEC-WORK-V1.md section 1).
Command nova-work holds every issue of every repository of an organization in one tree file, with each issue's full contents, and proves the tree holds exactly what the source holds (docs/SPEC-WORK-V1.md section 1).
internal
card
Package card is what a brief's writers hold every brief to before it leaves: its PATHS computed from its START files, never typed by a hand, and the card checks (docs/SPEC-CARD-CONTRACT.md section 6).
Package card is what a brief's writers hold every brief to before it leaves: its PATHS computed from its START files, never typed by a hand, and the card checks (docs/SPEC-CARD-CONTRACT.md section 6).
cardgen
Package cardgen is nova-card's planner: it turns a structured source (a ratchet ledger, a findings TSV, a tool's rendered help) into a directory of briefs that `nova-sprint add --brief-dir` admits as they are.
Package cardgen is nova-card's planner: it turns a structured source (a ratchet ledger, a findings TSV, a tool's rendered help) into a directory of briefs that `nova-sprint add --brief-dir` admits as they are.
fleetrules
Package fleet holds the child rules files this repository's members inject into every card at stage time (nova-tools#5174 rule 6, rules by reference): fleet/child-rules.txt, and fleet/child-rules.<repo>.txt for a repository with rules of its own.
Package fleet holds the child rules files this repository's members inject into every card at stage time (nova-tools#5174 rule 6, rules by reference): fleet/child-rules.txt, and fleet/child-rules.<repo>.txt for a repository with rules of its own.
profiles
Package profiles holds the generated-policy TEMPLATES this repository ships, and it exists so that the tool and tools/sandboxcheck fill ONE text rather than two (SPEC-SANDBOX rule 15, and the work list's "the file is embedded with go:embed").
Package profiles holds the generated-policy TEMPLATES this repository ships, and it exists so that the tool and tools/sandboxcheck fill ONE text rather than two (SPEC-SANDBOX rule 15, and the work list's "the file is embedded with go:embed").
roadmapdoc
Package roadmapdoc reads docs/roadmap.sexp and renders ROADMAP.md from it.
Package roadmapdoc reads docs/roadmap.sexp and renders ROADMAP.md from it.
sprint
Package sprint implements the core coordination rules and data structures for nova-sprint (docs/SPEC-SPRINT.md).
Package sprint implements the core coordination rules and data structures for nova-sprint (docs/SPEC-SPRINT.md).
sprint/driver
Package driver plays the world outside the sprint table, on a tick: workers taking and finishing work cards, readers reporting read cards, each stream's merge step with its facts, and fleet members going down and up.
Package driver plays the world outside the sprint table, on a tick: workers taking and finishing work cards, readers reporting read cards, each stream's merge step with its facts, and fleet members going down and up.
sprint/refmodel
Package refmodel is a reference model of nova-sprint's sprint table, written from the TLA+ module tla/SprintTables.tla (its sprint-tables-model branch, at 4bf919875) and docs/SPEC-SPRINT.md, and not from the engine.
Package refmodel is a reference model of nova-sprint's sprint table, written from the TLA+ module tla/SprintTables.tla (its sprint-tables-model branch, at 4bf919875) and docs/SPEC-SPRINT.md, and not from the engine.
sprint/store
Package store binds the sprint core (internal/sprint) to the table layer (pkg/ntable): one set read of the tables a step needs, then batch applies, chunked under the table layer's bounds, with an operation record for every step that touches more than one table or writes notifications, and the notifications written by the same step as the move that causes them.
Package store binds the sprint core (internal/sprint) to the table layer (pkg/ntable): one set read of the tables a step needs, then batch applies, chunked under the table layer's bounds, with an operation record for every step that touches more than one table or writes notifications, and the notifications written by the same step as the move that causes them.
sprint/store/storetest
Package storetest is what the tests of the sprint store and of its callers share: the twin's check (TwinDiff, a test's Store.CheckTwin).
Package storetest is what the tests of the sprint store and of its callers share: the twin's check (TwinDiff, a test's Store.CheckTwin).
sprintdash
Package sprintdash is the sprint dashboard's server (docs/SPEC-SPRINT-DASHBOARD.md): one page, embedded in the binary, /api/sprint, a cached copy of the sprint as `nova-sprint where --json --cards` prints it, /events, each new copy pushed as it is read, and the pull routes (pull.go), a worker's own view of the same copy.
Package sprintdash is the sprint dashboard's server (docs/SPEC-SPRINT-DASHBOARD.md): one page, embedded in the binary, /api/sprint, a cached copy of the sprint as `nova-sprint where --json --cards` prints it, /events, each new copy pushed as it is read, and the pull routes (pull.go), a worker's own view of the same copy.
workfile
Package workfile is nova-work's tree file: every issue of every repository of a source, with its full contents, as one restricted s-expression read by internal/worklang (docs/SPEC-WORK-V1.md section 1).
Package workfile is nova-work's tree file: every issue of every repository of a source, with its full contents, as one restricted s-expression read by internal/worklang (docs/SPEC-WORK-V1.md section 1).
workgh
Package workgh reads GitHub issues, read-only, into nova-work's tree model (internal/workfile).
Package workgh reads GitHub issues, read-only, into nova-work's tree model (internal/workfile).
worklang
Package worklang is the bounded reader for a restricted-Lisp file (docs/SPEC-WORKLANG.md).
Package worklang is the bounded reader for a restricted-Lisp file (docs/SPEC-WORKLANG.md).
pkg
atomicfile
Package atomicfile writes a file atomically: a reader opening or reading the file sees either the old content or the new content in full, never a part of either.
Package atomicfile writes a file atomically: a reader opening or reading the file sees either the old content or the new content in full, never a part of either.
bench
Package bench runs one command on a Linux bench against a copy of a local tree: `nova-ci bench run`.
Package bench runs one command on a Linux bench against a copy of a local tree: `nova-ci bench run`.
binstamp
Package binstamp names the state of a binary's file: a loop that runs for days (nova-sprint run, nova-swarm member) stamps its own file when it begins and again before each tick, and stops when the stamp changed, so its supervisor starts the build installed under it.
Package binstamp names the state of a binary's file: a loop that runs for days (nova-sprint run, nova-swarm member) stamps its own file when it begins and again before each tick, and stops when the stamp changed, so its supervisor starts the build installed under it.
bounded
Package bounded is the one shape every listing in this repo prints, and the reason it exists is an incident: a line running on a 260K-context model died reading a single 674-line return from a verb that lists its state.
Package bounded is the one shape every listing in this repo prints, and the reason it exists is an incident: a line running on a 260K-context model died reading a single 674-line return from a verb that lists its state.
buildinfo
Package buildinfo answers one question in one place: WHICH BUILD IS THIS.
Package buildinfo answers one question in one place: WHICH BUILD IS THIS.
bus
Package bus is the message bus between AIs over Redis streams (docs/SPEC-BUS.md; the delivery machine is tla/Bus2.tla).
Package bus is the message bus between AIs over Redis streams (docs/SPEC-BUS.md; the delivery machine is tla/Bus2.tla).
cardcontract
Package cardcontract is the frame around a card's task (docs/SPEC-CARD-CONTRACT.md): the frame the member hands native (Frame), the result shape a child ends with (Result), and the profiles, keyed by model family, that write JOB.md and the shims first on the child's PATH so the child meets the frame through the commands it already knows.
Package cardcontract is the frame around a card's task (docs/SPEC-CARD-CONTRACT.md): the frame the member hands native (Frame), the result shape a child ends with (Result), and the profiles, keyed by model family, that write JOB.md and the shims first on the child's PATH so the child meets the frame through the commands it already knows.
cardcost
Package cardcost is what a card cost: a route's price sheet as nova-config holds it (the route kind's price fields, docs/SPEC-CONFIG.md, "route"), the tokens one run spent by class, the predicted cost of the one priced by the other, and the usage record a consumer card keeps (docs/SPEC-SPRINT.md, "What a card cost"), in exact decimal arithmetic.
Package cardcost is what a card cost: a route's price sheet as nova-config holds it (the route kind's price fields, docs/SPEC-CONFIG.md, "route"), the tokens one run spent by class, the predicted cost of the one priced by the other, and the usage record a consumer card keeps (docs/SPEC-SPRINT.md, "What a card cost"), in exact decimal arithmetic.
cardhdr
Package cardhdr is the card header's vocabulary: the kinds and routes a card's KIND and ROUTE lines may carry, and the one reader of a `KEY: value` header line.
Package cardhdr is the card header's vocabulary: the kinds and routes a card's KIND and ROUTE lines may carry, and the one reader of a `KEY: value` header line.
cardlimits
Package cardlimits holds the two sizes a card's brief is held to, in one place that nothing is behind: no redis client, no table layer, no store.
Package cardlimits holds the two sizes a card's brief is held to, in one place that nothing is behind: no redis client, no table layer, no store.
cardtree
Package cardtree is a card as a tree of steps (docs/SPEC-SPRINT.md, "A card is a tree of steps"; nova-tools#5174 rule 7): the grammar of numbered step blocks, the lint of a tree, the script step the member runs with no model, the verdict per step, and the remainder a failed step leaves.
Package cardtree is a card as a tree of steps (docs/SPEC-SPRINT.md, "A card is a tree of steps"; nova-tools#5174 rule 7): the grammar of numbered step blocks, the lint of a tree, the script step the member runs with no model, the verdict per step, and the remainder a failed step leaves.
config
Package config is nova-config's library: the permanent, non-ephemeral configuration of the fleet, kept in Postgres (schema `config`) and applied into Redis so Redis is always a rebuildable copy of the configuration.
Package config is nova-config's library: the permanent, non-ephemeral configuration of the fleet, kept in Postgres (schema `config`) and applied into Redis so Redis is always a rebuildable copy of the configuration.
decide
Package decide is a decision system that is trained from its own record (docs/SPEC-NOVA-DECIDE.md).
Package decide is a decision system that is trained from its own record (docs/SPEC-NOVA-DECIDE.md).
delayproxy
Package delayproxy is a TCP proxy that holds every write of its clients back by a fixed time before it forwards it: a store that stands far away, made on the loopback.
Package delayproxy is a TCP proxy that holds every write of its clients back by a fixed time before it forwards it: a store that stands far away, made on the loopback.
diffcheck
Package diffcheck is the lander's mechanical checks of one card's diff, the two the calibration of the decide read found a model read does not make (docs/SPEC-SPRINT.md section 7, the lander's checks): every file the diff changes is one the card's PATHS names (E12), and no changed line leaves a stranded sentence fragment or an unmatched backquote beside it (E4).
Package diffcheck is the lander's mechanical checks of one card's diff, the two the calibration of the decide read found a model read does not make (docs/SPEC-SPRINT.md section 7, the lander's checks): every file the diff changes is one the card's PATHS names (E12), and no changed line leaves a stranded sentence fragment or an unmatched backquote beside it (E4).
dogfood
Package dogfood answers one question about a tool that its own tests cannot: has somebody who did not write it actually run it?
Package dogfood answers one question about a tool that its own tests cannot: has somebody who did not write it actually run it?
filelock
Package filelock is the one lock on a file across processes: the kernel's lock (flock on unix, LockFileEx on Windows), released by the kernel when its holder dies, with the holder's stamp written inside the file for a refusal to name.
Package filelock is the one lock on a file across processes: the kernel's lock (flock on unix, LockFileEx on Windows), released by the kernel when its holder dies, with the holder's stamp written inside the file for a refusal to name.
fleet
Package fleet holds the machines registry: the one file that says what each machine in the fleet IS, and therefore what may be placed on it.
Package fleet holds the machines registry: the one file that says what each machine in the fleet IS, and therefore what may be placed on it.
friend
Package friend is what a friend's machinery runs to be part of the team (docs/SPEC-FRIEND.md; the model is tla/Friend.tla).
Package friend is what a friend's machinery runs to be part of the team (docs/SPEC-FRIEND.md; the model is tla/Friend.tla).
gitrun
Package gitrun is the one runner for a one-shot git child.
Package gitrun is the one runner for a one-shot git child.
gocache
Package gocache holds a Go build cache under a size: least recently used entries go first, never one used in the last Recent, never anything that is not a cache entry.
Package gocache holds a Go build cache under a size: least recently used entries go first, never one used in the last Recent, never anything that is not a cache entry.
goenv
Package goenv builds the environment a tool hands to a child `go` command.
Package goenv builds the environment a tool hands to a child `go` command.
harness
Package harness is the vocabulary of the harnesses a card's child runs under: the one word a route row, a packet and a launch name a harness by.
Package harness is the vocabulary of the harnesses a card's child runs under: the one word a route row, a packet and a launch name a harness by.
hostload
Package hostload measures how busy a machine is, as a percent of all its cores: the CPU busy percent over an interval (the number Activity Monitor and top print), or, where that cannot be measured, the one-minute load average over the logical cores.
Package hostload measures how busy a machine is, as a percent of all its cores: the CPU busy percent over an interval (the number Activity Monitor and top print), or, where that cannot be measured, the one-minute load average over the logical cores.
hygiene
Package hygiene is the one place that answers "is this diff clean", for the accept gate, for the merge lane and for a hand.
Package hygiene is the one place that answers "is this diff clean", for the accept gate, for the merge lane and for a hand.
keyshape
Package keyshape holds the one predicate that says whether an environment NAME carries a secret: the env var value is never inspected, only the name.
Package keyshape holds the one predicate that says whether an environment NAME carries a secret: the env var value is never inspected, only the name.
log
Package log is the one structured event line every part writes BESIDE the one human line it already writes.
Package log is the one structured event line every part writes BESIDE the one human line it already writes.
member
Package member is a fleet member of a sprint: the loop a fleet machine runs against the sprint's fleet table (the machine's queue) and the sprint's verbs, with each card run as one child through a runner.
Package member is a fleet member of a sprint: the loop a fleet machine runs against the sprint's fleet table (the machine's queue) and the sprint's verbs, with each card run as one child through a runner.
nsprint/fn
Package fn assembles and installs the nova-sprint Redis Function library.
Package fn assembles and installs the nova-sprint Redis Function library.
nsprint/redisauth
Package redisauth is the one fleet Redis seat every tool dials with from the environment: the ACL user and the variable holding its password.
Package redisauth is the one fleet Redis seat every tool dials with from the environment: the ACL user and the variable holding its password.
nsprint/testutil
Package testutil starts the throwaway Redis the nova-sprint controls share.
Package testutil starts the throwaway Redis the nova-sprint controls share.
nsprint/verbflag
Package verbflag is the one seam every living tool's verbs parse their flags through, so help and the CLI standard hold the same way for every verb.
Package verbflag is the one seam every living tool's verbs parse their flags through, so help and the CLI standard hold the same way for every verb.
ntable
Package ntable is a general, Redis-backed table built from one primitive: the ordered set.
Package ntable is a general, Redis-backed table built from one primitive: the ordered set.
onboarding
Package onboarding reads the two things docs/ONBOARDING.md makes every command in this repo carry — the `example:` block at the foot of its usage banner, and its `### First run` section in docs/TESTS.md — and reduces an output line to the part that document promises.
Package onboarding reads the two things docs/ONBOARDING.md makes every command in this repo carry — the `example:` block at the foot of its usage banner, and its `### First run` section in docs/TESTS.md — and reduces an output line to the part that document promises.
oneline
Package oneline is the one escape every binary in this repo renders caller-supplied or stored text through before it reaches an event line.
Package oneline is the one escape every binary in this repo renders caller-supplied or stored text through before it reaches an event line.
pkgselect
Package pkgselect chooses the Go packages a CI run tests and deals them to the legs that test them.
Package pkgselect chooses the Go packages a CI run tests and deals them to the legs that test them.
provbalance
Package provbalance reads a model provider's balance through the seat's key: the transport of the sprint's balance poll (internal/sprint balance.go; nova-tools#5199).
Package provbalance reads a model provider's balance through the seat's key: the transport of the sprint's balance poll (internal/sprint balance.go; nova-tools#5199).
ratebudget
Package ratebudget is the sprint's one global rate limiter: a requests-per-window budget per model and a concurrency budget per provider, each one shared bucket in the sprint's store that every caller on every machine takes from (the owner, 2026-10-09: "The per-model pacing budget should be global btw.
Package ratebudget is the sprint's one global rate limiter: a requests-per-window budget per model and a concurrency budget per provider, each one shared bucket in the sprint's store that every caller on every machine takes from (the owner, 2026-10-09: "The per-model pacing budget should be global btw.
readregular
Package readregular provides bounds-checked and type-checked file reads for regular files, rejecting non-regular files (such as FIFOs, devices, and sockets) and files that exceed an explicit size cap.
Package readregular provides bounds-checked and type-checked file reads for regular files, rejecting non-regular files (such as FIFOs, devices, and sockets) and files that exceed an explicit size cap.
redisacl
Package redisacl renders the fleet store's ACL users from the function library a build embeds and the key families its tools use, and compares a rendering with a store's live ACL.
Package redisacl renders the fleet store's ACL users from the function library a build embeds and the key families its tools use, and compares a rendering with a store's live ACL.
redisconn
Package redisconn is the one way a nova tool opens its Redis connection.
Package redisconn is the one way a nova tool opens its Redis connection.
redisfn
Package redisfn builds, loads and checks a Redis function library from Lua source held in a file system, which for a tool is the Lua it embeds.
Package redisfn builds, loads and checks a Redis function library from Lua source held in a file system, which for a tool is the Lua it embeds.
release
Package release is the last mile: a green commit on main becomes a version, a set of binaries, and the same binaries answering for themselves on every bench in the fleet.
Package release is the last mile: a green commit on main becomes a version, a set of binaries, and the same binaries answering for themselves on every bench in the fleet.
safepath
Package safepath is the one way a path this tool COMPUTED is removed.
Package safepath is the one way a path this tool COMPUTED is removed.
sandbox
The egress wall is the card's OUTBOUND half: the filesystem wall this package builds everywhere else says what a card may read and write, and this file says what it may talk to.
The egress wall is the card's OUTBOUND half: the filesystem wall this package builds everywhere else says what a card may read and write, and this file says what it may talk to.
seatcred
Package seatcred resolves a seat's fleet Redis user and password in the process that needs them (nova-tools#4052).
Package seatcred resolves a seat's fleet Redis user and password in the process that needs them (nova-tools#4052).
secretcheck
Package secretcheck is the harness of the class rule "no secret reaches an error" (docs/SPEC-CI.md, `secrets-never-in-errors`): secret-shaped inputs, a driver that hands them to a function by reflection and reads what came back, and the two-way comparisons of a reviewed table and allowlist with what a walk of the tree finds.
Package secretcheck is the harness of the class rule "no secret reaches an error" (docs/SPEC-CI.md, `secrets-never-in-errors`): secret-shaped inputs, a driver that hands them to a function by reflection and reads what came back, and the two-way comparisons of a reviewed table and allowlist with what a walk of the tree finds.
secrets
Package secrets implements the credential-layer machinery described in docs/SPEC-SECRETS.md.
Package secrets implements the credential-layer machinery described in docs/SPEC-SECRETS.md.
sprintwire
Package sprintwire is how a worker talks to the sprint's server: the run loop on the coordinator's machine, the one writer of the sprint, which runs a worker's verbs for it, one at a time, beside the store.
Package sprintwire is how a worker talks to the sprint's server: the run loop on the coordinator's machine, the one writer of the sprint, which runs a worker's verbs for it, one at a time, beside the store.
subproc
Package subproc is the one place a child process gets its bound.
Package subproc is the one place a child process gets its bound.
swarm
Package swarm is nova-swarm's machinery: a pool of one-task workers, each with its own working directory, its own data home, its own job directory and its own deadline held by the machinery rather than by the worker.
Package swarm is nova-swarm's machinery: a pool of one-task workers, each with its own working directory, its own data home, its own job directory and its own deadline held by the machinery rather than by the worker.
testbin
Package testbin places a built program into a test's directory.
Package testbin places a built program into a test's directory.
testgit
Package testgit is the one identity a test's git commit runs under.
Package testgit is the one identity a test's git commit runs under.
testguard
Package testguard refuses to let a unit test reach a real host.
Package testguard refuses to let a unit test reach a real host.
testkit
Package testkit holds the test rigs that were copied from package to package: running a tool's entry point in process with both streams captured and checked (verb.go), writing and reading the files a test sets up (here and tree.go), a recording wait for code a synctest bubble cannot hold (waits.go) and a skip by platform (skip.go).
Package testkit holds the test rigs that were copied from package to package: running a tool's entry point in process with both streams captured and checked (verb.go), writing and reading the files a test sets up (here and tree.go), a recording wait for code a synctest bubble cannot hold (waits.go) and a skip by platform (skip.go).
testredis
Package testredis is a throwaway redis-server for one test.
Package testredis is a throwaway redis-server for one test.
tlc
Package tlc runs TLC over the declared cases of tla/CASES.tsv and reads what it says.
Package tlc runs TLC over the declared cases of tla/CASES.tsv and reads what it says.
tool
Package tool is the one shape of a nova command.
Package tool is the one shape of a nova command.
tty
Package tty says whether a file is a terminal and how large its screen is, on the systems that have a terminal to ask (the unix family and Windows); elsewhere a file is never a terminal and its size is not known.
Package tty says whether a file is a terminal and how large its screen is, on the systems that have a terminal to ask (the unix family and Windows); elsewhere a file is never a terminal and its size is not known.
typedrec
Package typedrec is the one typed parser: the home of every typed line a nova tool reads, the RESULT v2 record and DISPOSITION line first, and the Lua replies (the PATHS gate's refusal) and any other typed line with them.
Package typedrec is the one typed parser: the home of every typed line a nova tool reads, the RESULT v2 record and DISPOSITION line first, and the Lua replies (the PATHS gate's refusal) and any other typed line with them.
units
Package units is the text and install of every unit a running sprint needs.
Package units is the text and install of every unit a running sprint needs.
tools
roadmap command
roadmap writes ROADMAP.md from docs/roadmap.sexp (and, with --kind fixes, FIXES.md from docs/fixes.sexp), so neither page is ever written by hand: the sexp is the data, internal/roadmapdoc decodes it through internal/worklang (nothing is evaluated) and renders the page, and internal/roadmapdoc's TestRoadmapIsGeneratedFromTheSexp and TestFixesIsGeneratedFromTheSexp hold the committed pages to what this writes.
roadmap writes ROADMAP.md from docs/roadmap.sexp (and, with --kind fixes, FIXES.md from docs/fixes.sexp), so neither page is ever written by hand: the sexp is the data, internal/roadmapdoc decodes it through internal/worklang (nothing is evaluated) and renders the page, and internal/roadmapdoc's TestRoadmapIsGeneratedFromTheSexp and TestFixesIsGeneratedFromTheSexp hold the committed pages to what this writes.
seed command
Command seed makes nova-sprint's seed tree from a nova-tools checkout, by the rules in tools/seed/RECIPE: the sprint's packages are moved whole, the nova-tools packages they import are copied with their import specs rewritten to this module, and the sprint's docs and TLA+ models come with them.
Command seed makes nova-sprint's seed tree from a nova-tools checkout, by the rules in tools/seed/RECIPE: the sprint's packages are moved whole, the nova-tools packages they import are copied with their import specs rewritten to this module, and the sprint's docs and TLA+ models come with them.
sprintsize command
Command sprintsize is nova-sprint's size run: the sprint at 10x the largest real one (three streams of 30,000 in stops of 1,000, and two of 10,000) on a local store, every operation timed against a limit written down before the run.
Command sprintsize is nova-sprint's size run: the sprint at 10x the largest real one (three streams of 30,000 in stops of 1,000, and two of 10,000) on a local store, every operation timed against a limit written down before the run.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL