5.2 Executable Tickets & Proof-of-Green Gate
chinwag tasks split --max-loc 150 --verify-greenHow Chinwag backs every Linear Issue and GitHub Project Item with 100% webhook-free Executable Tickets in the Chinwag Encrypted Artifact Store (<org>/chinwag-tasks.git), enforces synchronous Proof-of-Green board gates (200ms snap-back on fake Done), teleports in-flight tickets in <300ms, and auto-splits oversized specs (p90 > 150 LOC).
5.2 Executable Tickets & Proof-of-Green Gate
chinwag tasks split --max-loc 150 --verify-green
Traditional issue trackers store engineering tickets in cloud databases that AI coding agents cannot branch, diff, or transactionally lock alongside source code, allowing agents to mark tickets "Done" while tests are still failing or code hasn't even compiled.
Chinwag pairs your existing Linear or GitHub Projects v2 board with Executable Tickets (<org>/chinwag-tasks.git in the Chinwag Encrypted Artifact Store) · a 100% webhook-free (INV-ZERO-WEBHOOKS-01), Git-native repository where every Linear Issue (ENG-402) and GitHub Project Item (#142) is backed by a live cryptographic capsule, a zero-copy repo.fork() sandbox, a pre-warmed Shadow-KV prefix, and a synchronous Cryptographic "Proof-of-Green" Board Gate (INV-NO-FAKE-DONE-01).
# Bootstrap <org>/chinwag-tasks.git and link it to Linear or GitHub Projects v2 (100% webhook-free)
chinwag tasks init --org acme-corp --sync linear
# Start a ticket: 0s synchronous cold-start hydration in the Chinwag Encrypted Artifact Store
chinwag start ENG-402
1. Executable Tickets in the Chinwag Encrypted Artifact Store (INV-CF-ARTIFACTS-EXECUTABLE-TICKETS-01 & INV-NO-FAKE-DONE-01)
| Capability | Canonical Git Ref in <org>/chinwag-tasks.git | What It Guarantees |
|---|---|---|
| 1. 1:1 Live Ticket Capsules | refs/chinwag/tasks/<ISSUE-ID>/capsule | Every Linear Issue (ENG-402) and GitHub Project Item (#142) is backed 1:1 by a signed capsule in <org>/chinwag-tasks.git in the Chinwag Encrypted Artifact Store. |
2. 0s Cold-Start Hydration on Todo / In Progress | refs/chinwag/tasks/<ISSUE-ID>/shadow-kv+ <org>/<project>--task-ENG-402.git | When chinwag start ENG-402 runs (or a ticket enters Todo / In Progress), The Chinwag Encrypted Artifact Store synchronously spawns a zero-copy repo.fork() sandbox (<org>/<project>--task-ENG-402.git), queries .codegraph for affected symbols, attaches matching .chinwag/regressions/* Tombstone cassettes, and pre-warms the ticket's Shadow-KV prefix (refs/chinwag/tasks/ENG-402/shadow-kv). |
3. 1-Click Ticket Teleportation (<300 ms) | chinwag teleport ENG-402 --at-step 8 | Seamless <300 ms handover between agents and humans (Builder → human engineer or Reflex-1), dropping the recipient into the exact Git worktree (project_worktree_oid), warm Shadow-KV mental state, and deterministic flight tape at Step N with a scoped 10-minute art_v1_ token. |
4. Synchronous Cryptographic "Proof-of-Green" & Cross-Surface Board Gate (INV-NO-FAKE-DONE-01 & INV-CROSS-SURFACE-SYNC-01) | refs/chinwag/tasks/<ISSUE-ID>/proof (TaskCompletionProofV1 + SurfaceSyncReceiptV1) | Moving a Linear or GitHub Projects card (`chinwag board watch |
| 5. Zero-Rate-Limit, Firewall-Proof Git-Native Board Sync | git fetch / repo.files on <org>/chinwag-tasks.git | Query the entire Linear or GitHub sprint board in <1 ms via git fetch or edge repo.files on <org>/chinwag-tasks.git with zero GraphQL rate limits and full offline / Rung-5 resilience. |
100% Webhook-Free Architecture (
INV-ZERO-WEBHOOKS-01· Zero Inbound Webhooks or Webhook Secrets): Executable Tickets requires zero inbound GitHub or Linear webhooks:
- Synchronous Client MCP & In-Runner OIDC Sync:
<org>/chinwag-tasks.gitin the Chinwag Encrypted Artifact Store is mutated synchronously viaK1 + K2-signed Chinwag Mesh RPCs and Git Smart HTTP (art_v1_tokens), and synced with Linear / GitHub Projects client-side via the developer's existing local MCP (@linear/mcp-server,@modelcontextprotocol/server-github, orghCLI) or in-runner viachinwag-ciOIDC.- Synchronous Edge Ref Gate (Not a Webhook): When
chinwag start ENG-402runs, the Chinwag Edge Ref Gate synchronously forks<org>/<project>--task-ENG-402.gitand pre-warms Shadow-KV. When an agent tries to markENG-402Done, the Chinwag Edge Ref Gate synchronously checksrefs/chinwag/tasks/ENG-402/proof(TaskCompletionProofV1signed bychinwag-ci) and blocks/snaps back any unverifiedDonetransition at the Git ref + local MCP layer · with zero webhooks to configure, expose, or get rate-limited.
Anatomy of an Atomic chinwag-tasks Specification
Every task file in <org>/chinwag-tasks/active/TASK-204.md carries structured YAML frontmatter that both humans and agents can read deterministically:
---
id: TASK-204
title: "Add Ed25519 signature verification to webhook receiver"
status: ready
owner_seat: "@RUST"
reviewer_seat: "@ARCHITECT"
file_scope:
- "crates/webhook-ingest/src/verify.rs"
- "crates/webhook-ingest/tests/verify_test.rs"
estimated_loc_p90: 110
verification_cmd: "cargo test -p webhook-ingest --test verify_test"
budget_cap_credits: 250
---
## Objective
Verify incoming `X-Chinwag-Signature` headers using `ed25519-dalek` in strict batch-safe mode before deserializing the JSON payload (`INV-VERIFY-BEFORE-DECRYPT-01`).
## Acceptance Criteria
1. Reject missing or malformed signatures with `401 Unauthorized` in `< 0.2ms`.
2. Add property-based tests covering mutated payload bytes and wrong public keys.
Automatic Task Decomposition (p90 > 150 LOC Rule)
Empirical telemetry across thousands of AI-assisted pull requests shows a sharp cliff when a single task exceeds 150 lines of changed code: review latency triples, context-window hallucination rates spike, and merge conflicts multiply.
When a human or PM creates a ticket whose predicted impact in Chinwag Reflex-1 exceeds p90 > 150 LOC (or touches > 4 top-level modules), Chinwag Delivery-2 (50 Cr) automatically splits the parent ticket into 2..5 atomic sub-tasks with strictly disjoint --file-scope globs:
Parent Ticket: TASK-300 ("Implement OAuth2 PKCE + Session Store + UI Login Screen" · Est. p90: 420 LOC)
│
├─► Sub-Task TASK-300A: PKCE Token Exchange & Crypto Verifier
│ --file-scope "crates/auth-core/**" (Est. p90: 115 LOC · Parallel Wave 1)
│
├─► Sub-Task TASK-300B: Durable Session Store Migration & Queries
│ --file-scope "crates/session-db/**" (Est. p90: 95 LOC · Parallel Wave 1)
│
└─► Sub-Task TASK-300C: Login Modal Component & 176/176 UI Gate
--file-scope "apps/web/src/auth/**" (Est. p90: 120 LOC · Wave 2 after 300A)
Bounded Autonomy: CustomerAutonomyFloorV1 & EmergencyBrakePolicyV1
Chinwag Delivery-2 keeps your engineering queue moving without ever running away with your cloud budget or merging unverified code. Every organization configures hard, non-bypassable autonomy rails in chinwag.workflow.yaml:
delivery_autonomy:
schema: chinwag.autonomy.floor.v1
max_parallel_subtasks_per_ticket: 5
max_credits_per_ticket_without_human_ack: 500
max_consecutive_ci_strikes: 3
require_human_approval_for:
- "crates/crypto-core/**"
- ".github/workflows/**"
- "chinwag.workflow.yaml"
emergency_brake:
schema: chinwag.emergency.brake.v1
halt_on_credit_burn_per_hour: 2500
halt_on_repeated_tombstone_collision: true
notify_channel: "#eng-alerts"
| Safety Invariant | Enforcement Mechanism |
|---|---|
| Per-Ticket Credit Ceiling | If a task reaches budget_cap_credits (default 500 Cr), Chinwag Delivery-2 pauses subagent dispatch and posts a 1-click approval card in Slack / GitHub. |
| Protected Path Gate | Any diff touching paths in require_human_approval_for cannot auto-merge even if all automated geometry and review gates pass. |
| Instant Emergency Brake | Running chinwag tasks pause --all (or clicking Pause Queue in Slack) halts all active agent leases across the org in < 100ms. |
Next Steps
- Next:
.codegraphBlast-Radius Prevention & Smart FinOps Routing - Ready to decompose complex specs into clean, parallel merges? Reserve Your Organization Credit Pack →
Overview: Dual-Brain AI PM
How DELIVERY combines Chinwag Reflex-1 (<50ms risk/cost radar) and Chinwag Delivery-2 (multi-step dependency planning) to keep engineering teams shipping.
.codegraph & FinOps Routing
How DELIVERY uses local structural call graphs (.codegraph) to prevent cross-module breakage and optimize multi-model inference costs.