Skip to content

Atlas Pro monetization release — licensing, Stripe backend, telemetry, UX conformance (fleet build)#10

Closed
anombyte93 wants to merge 53 commits into
mainfrom
fleet-monetization-integration
Closed

Atlas Pro monetization release — licensing, Stripe backend, telemetry, UX conformance (fleet build)#10
anombyte93 wants to merge 53 commits into
mainfrom
fleet-monetization-integration

Conversation

@anombyte93

Copy link
Copy Markdown
Owner

Summary

Autonomous Atlas Fleet build (4 waves, 5 codex workers, file-disjoint chunks, sequential green-gated merges). Implements the Atlas Pro Monetization PRD (16 tasks / 87 subtasks):

  • Wave 1 — KEY (task 1): Ed25519 license-key format v1 (ATLAS-<payload>.<sig>), stdlib reference implementation, Python/TS signing tools, RFC 8032 vectors, docs/product/LICENSE-KEY-SPEC.md.
  • Wave 2 — CLIENT (tasks 2–3): client-side license verify/status state machine (active/grace/expired/invalid), license_activate command + MCP tool, premium gating = launcher AND active|grace license (REQ-006).
  • Wave 2 — BACKEND (tasks 4–7, 10): Cloudflare Worker (workers/): Stripe webhooks → license issuance, Resend email delivery, silent refresh endpoint, anonymous telemetry endpoint + D1/Analytics Engine storage, secret-scan CI workflow, ops runbooks.
  • Wave 3 — NET (tasks 8, 9, 11, 12): client silent license refresh (throttled, verified-save), opt-out telemetry module + pipeline/shipcheck hooks, install/postinstall pings with README disclosure, repo-local checkout contract docs.
  • Wave 4 — UXREL (tasks 13, 15, 14, 16): terminal UX phase-grammar conformance (render.py + conformance suite), onboarding/quickstart polish + portability self-test, UX vocabulary/paywall lint in CI, KPI snapshot script + runbook + release evidence.

Verification (every chunk independently re-verified by the orchestrator before merge)

  • python3 -m pytest tests/ -q248 passed on this branch
  • workers/: vitest run44 passed (7 files), tsc clean
  • Secret scans on every chunk diff: clean (no key material, no Stripe/Resend tokens)
  • Per-task acceptance cards in .atlas-ai/cdd/, per-chunk evidence in FLEET-LOG-*.md / FLEET-REPORT-*.md

Blocked items (skip-not-fabricate — need credentials/authorization)

  • Stripe test/live products + checkout wiring on atlas-ai.au/pro (external site repo + Stripe dashboard)
  • Resend API key + real email delivery proof
  • Worker production deploy (scripts/deploy-worker.sh ready; not run — not authorized)
  • Live purchase → email → activation → premium-unlock E2E
  • Release ship-check needs real .taskmaster/ pipeline state (workers forbidden to fabricate it)

Notes for review

  • Base note: this branch was cut from v4-merge at b339b51 (not yet in main), so the diff includes that baseline plus the fleet work.
  • Do not auto-merge — human review gate per fleet contract.

🤖 Generated with Claude Code

claude and others added 30 commits June 11, 2026 17:19
Living-doc contract for the open-core v4 merge: personas, KPIs, user
stories, use cases, flows, FR-1..28, NFR-1..19 (PRODUCT-SPEC.md);
terminal interaction grammar, paywall design, README/pricing copy,
canonical naming vocabulary, symbol system (UX-SPEC.md). CHANGELOG
records the 2.x-skill + 5.x-plugin lineage merging to public v4.0.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… package

Single source of truth for the deterministic engine. The 1,398-line
skill script.py becomes prd_taskmaster/{lib,preflight,providers,
capabilities,templates,validation,tasks,cli}.py with a thin root
script.py shim (the curl-installed skill entry point).

Each command gains a pure run_<name>()->dict core (raising CommandError)
plus a cmd_<name>() CLI wrapper that emit()s — so the future MCP host
imports a non-exiting path (FR-28) while CLI output stays byte-identical.

Verified: golden-output parity vs the v2 skill across all 12 subcommands
(only the two load-template absolute path: lines differ, as expected);
stdlib-only import confirmed under python3 -S; tests/core 9 passed.
Synced templates/taskmaster-prd-comprehensive.md to the skill's
source-of-truth version (repo copy was an older 984-line variant).

Imported-From: ~/.claude/skills/prd-taskmaster-v2/script.py

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
parallel.py moves verbatim into prd_taskmaster/parallel.py (stdlib-only).
Its four commands are wired into the unified CLI as parallel-{plan,apply,
extract,inject}, so the agent-parallel research bridge is reachable from
the single script.py entry point. Also rebrands the CLI prog from
'prd-taskmaster-v2' to 'prd-taskmaster' per the canonical vocabulary.

tests/core/test_parallel.py: plan packets, missing-only filter, apply
roundtrip (subtask merge + complexity report), extract/inject roundtrip.
13 core tests pass; stdlib-only import confirmed under python3 -S.

Imported-From: ~/.claude/skills/prd-taskmaster-v2/parallel.py

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Brings the FastMCP plugin's stateful core into the unified package
(stdlib-only), with no equivalent previously in the package:

- lib.py gains atomic_write, locked_update, emit_json_error, read_json,
  write_json (fcntl-based atomic state helpers; existing now_iso kept).
- pipeline.py: 5-phase CAS state machine (current_phase, advance_phase,
  check_gate, preflight) incl. the frozen gen6 hardening; imports
  rewired to prd_taskmaster.lib.
- shipcheck.py: extracts the 5-gate SHIP_CHECK_OK logic into an
  importable run_ship_check() (no sys.exit) + a main() preserving the
  exact CLI contract (stdout token only on full pass, exit 0/1/2).
- mode_recommend.py: the plugin's richer capability/execution-mode
  recommender (distinct from the golden-locked skill detect-capabilities).

The golden-locked skill CLI modules and cli.py are untouched. 20 core
tests pass (13 + 7 pipeline/shipcheck smoke); stdlib-only confirmed.

Imported-From: prd-taskmaster-plugin@v5-final (f140490)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replaces the v3 single-skill SKILL.md with the v2 4-phase workflow
(preflight -> discovery -> generate+validate -> handoff), retargeted to
the merged install dir ~/.claude/skills/prd-taskmaster/ and the unified
script.py (parallel-* subcommands). name stays 'prd-taskmaster' for
backward-compat; /atlas documented as the canonical command; handoff
describes the user-facing mode names (Verified Loop / Auto-Execute /
Plan & Drive) + the Atlas Fleet Pro teaser.

Adds phases/{DISCOVER,GENERATE,HANDOFF}.md (path refs corrected).
Removes SKILL.md.pre-codify and the .taskmaster/ dogfood residue.

Imported-From: ~/.claude/skills/prd-taskmaster-v2

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…aster

Plugin mode now imports the unified prd_taskmaster package instead of
sibling modules:
- mcp-server/server.py imports prd_taskmaster.{pipeline,validation,
  mode_recommend,taskmaster,templates,lib}; sys.path points at repo root;
  validate_prd→run_validate_prd, load_template→run_load_template. All 18
  tools register and load.
- prd_taskmaster/taskmaster.py imported from the plugin (import rewired).
- Imported skills/ (8), agents/, hooks/, .atlas-ai-skel/→skel/.
- Manifests renamed to prd-taskmaster v4.0.0 (plugin.json, package.json
  with corrected files[] incl. prd_taskmaster/ + script.py); .mcp.json
  server key kept 'go' for clean tool ids (mcp__plugin_prd-taskmaster_go__).
- Global atlas-go→prd-taskmaster sweep across skills/hooks/skel.
- Handoff: UX canonical mode names (Plan & Drive / Auto-Execute /
  Verified Loop / Atlas Fleet); Mode D is now a priced, locked Atlas Pro
  teaser pointing to a single atlas-ai.au/pro URL (waitlist anchor + 'coming
  soon' framing retired); becomes selectable only when a licensed
  atlas-launcher is detected (Atlas Fleet release).

Imported-From: prd-taskmaster-plugin@v5-final (f140490)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…contract

Migrates the plugin pytest suite onto the merged package layout and
reorganizes into tests/{core,mcp,plugin}/:
- core: pipeline_state, atomic_ops, capabilities (→mode_recommend),
  taskmaster_wrapper, cli, parallel, pipeline_smoke, validation_grade
  — imports retargeted to prd_taskmaster.*
- mcp: mcp_tools + integration (importorskip mcp; server-wrapped calls;
  validate_prd now 13-check skill canonical, not 14)
- plugin: plugin_manifest (name prd-taskmaster v4.0.0), skill_files
  (tool-id prefix mcp__plugin_prd-taskmaster_go__, /prd-taskmaster: routes,
  Atlas Fleet/Pro teaser), hooks (hooks/hooks.json matcher)

Fixes the 3 stale ship-check failures by REWRITING tests/core/test_ship_check.py
to the live skel/ship-check.py contract (current_phase==EXECUTE, CDD cards at
.atlas-ai/cdd/task-<id>.json, plan at .taskmaster/docs/plan.md, Gate 5 no
non-zero Exit status, --override SHIP_CHECK_OVERRIDE_ADMIN). Drops the obsolete
plugin test_validation.py (tested removed 14-check validation).

Full suite: 114 passed, 0 failures, 0 skips.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
install.sh: VERSION=4.0.0; now copies the required prd_taskmaster/ package
and phases/ alongside script.py; installs an /atlas alias skill that
delegates to the engine; warns about a superseded prd-taskmaster-v2 dir;
first-run hint shows /atlas.

.github/workflows/tests.yml: three jobs on py3.11/3.13 —
(1) stdlib-only: AST guard that prd_taskmaster/ imports nothing outside the
    stdlib + runs core/plugin tests with only pytest installed (proves the
    zero-dependency curl promise);
(2) full: installs mcp + runs the whole suite;
(3) version-agreement: __init__/package.json/plugin.json/install.sh must all
    read 4.0.0 and CHANGELOG must mention it.

Verified locally: installer syntax, version agreement, stdlib guard clean,
and the installed skill layout runs under python3 -S (no pip).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replaces the v1/v3 'PRD generator that asks 12+ questions' README with the
sellable open-core storefront from UX-SPEC: hero ('Turn any goal into
shipped code') with the inline validation scorecard, how-it-works pipeline,
two-path quickstart (curl + plugin), 'what verified means', the Free vs
Atlas Pro comparison table, the Atlas Fleet section, an explicit
what's-open/what's-not section, FAQ, and the MIT-free-forever promise.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Cosmetic: validation manual-mode message + parallel.py docstring and the
complexity-report generatedBy field now read 'prd-taskmaster'. 114 tests
still pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The v4 engine planned its own Phase B end-to-end: PRD NEEDS_WORK->EXCELLENT
(57/57) via the UC-4 fix loop, 12-task DAG validated+enriched in manual
mode, handoff recommendation correct for machine-state. Findings: P0
task-master-init clobbers existing .mcp.json (SETUP must DETECT-FIRST it);
P1 configure-providers sequencing; P2 calc-tasks scale-blindness; P2 empty
recommendation reason in CLI detect-capabilities. Also records the
execution-layer verdict: engine plans, productized atlas-dispatch executes,
peer-cli doctrine is the worker contract (REQ-006..009).

.gitignore: fence local engine state (.taskmaster/, .atlas-ai/, .claude/,
.env*, CLAUDE.md) so dogfood runs never pollute the repo.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
P0 — init_taskmaster() now snapshots .mcp.json before task-master init and
restores it verbatim if init clobbers it (DETECT-FIRST extended per FR-6);
reports mcp_json_protected. New CLI subcommand init-taskmaster exposes the
protected path; SKILL.md Phase 1 mandates it over raw task-master init.

P1 — configure-providers' missing-config error now carries
recommended_action=init_taskmaster + the exact fix command instead of a
dead-end message; SKILL.md documents the retry.

P2 — calc-tasks gains --scale solo|team|enterprise, clamping to the
discovery scale band (solo 8-12 / team 12-20 / enterprise 20-30 per
PRODUCT-SPEC US-T1); legacy [10,40] formula unchanged without the flag.

P2 — detect-capabilities now emits tier + aligns its recommendation logic
with the handoff skill (superpowers+ralph-loop -> Verified Loop) using
user-facing mode names in the reason.

tests/core/test_dogfood_fixes.py: 10 regression tests incl. a fake
clobbering task-master binary. Full suite 124 passed. Live-verified
against the real binary: .mcp.json byte-identical after init.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…/002)

B-Task 1 of the Phase B graph, built by the codex peer under the
orchestrating-peer-cli-agents discipline and independently verified:
6/6 scenario tests (linear, diamond, deadlock cycle, chunking, empty,
all-done) re-run by the orchestrator; stdlib-only confirmed under
python3 -S; full suite 130 passed; golden run on the real Phase B graph
yields ready_set [1,3,9] and 5 deadlock-free waves. List-only API —
tag resolution stays in the CLI/MCP layer (REQ-003).

Built-By: codex (gpt-5.5 xhigh) peer session
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
B-Task 3, codex-built and orchestrator-verified: 10 hermetic tests
(binary x config matrix, malformed/empty configs, project-only
registration, both .mcp.json formats) re-run independently; stdlib-only
under python3 -S; full suite 140 passed; live probe on a
launcher-registered machine returns {installed: True, mcp_registered:
True}. Additive only (+55 lines in mode_recommend.py).

Built-By: codex (gpt-5.5 xhigh) peer session
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
B-Task 4, codex-built and orchestrator-verified. When
detect_atlas_launcher().mcp_registered both capability paths (skill CLI
run_detect_capabilities + plugin mode_recommend.detect_capabilities)
return tier=premium and recommend mode D with the canonical Atlas Fleet
reason; launcher-absent behavior unchanged (hermetic clean-home tests
prove it). Real-machine spot-check: both paths premium/D. 37 targeted +
142 full-suite tests green in the orchestrator's shell; stdlib-only
holds. Single brittle real-env assertion widened to accept D.

Built-By: codex (gpt-5.5 xhigh) peer session
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
B-Task 2, codex-built and orchestrator-verified. run_fleet_waves core
(tag resolution reusing the parallel.py helpers, flat-file support)
exposed as script.py fleet-waves [--concurrency] [--tag] and as MCP tool
19. Verified independently: 15 targeted + 147 full-suite tests in my
shell; stdlib-only holds; live run on the real Phase B graph matches the
golden schedule [[1,3,9],[2,4,10],[5,6],[7,8,11],[12]]; 19 tools
register with compute_fleet_waves present.

Built-By: codex (gpt-5.5 xhigh) peer session
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…006..009)

B-Tasks 6+7, codex-built and orchestrator-verified. The Atlas Fleet
orchestrator loop: compute_fleet_waves -> worktree session_spawn per
chunk -> prompt_injected verify + one re-kick -> inbox_read collection ->
CDD-card + exit-status verification before sequential merges into
fleet-integration -> set-status done -> recompute. Worker prompt template
embedded with 7 grep-able WORKER_CONTRACT_* fields; sole-writer rule;
re-queue-once-then-BLOCKED; merge conflict -> fix task; UX-SPEC fleet
status view; SHIP_CHECK_OK exactly once; main never auto-touched.
Verified: 46 plugin tests + 153 full suite in my shell; all 7 contract
markers + hard gates present; delta = 2 new files; no peer commits.

Built-By: codex (gpt-5.5 xhigh) peer session
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
B-Task 11, orchestrator-built in parallel with the codex peer (disjoint
files). Mode D (Atlas Fleet) is now a real dispatchable mode when
detect_capabilities returns tier=premium: picker offers it, dispatch
invokes /prd-taskmaster:execute-fleet. Recommended-by-default only when
premium AND the graph parallelizes (>=2 chunks in any wave); premium +
serial graph recommends the best free mode with the honesty line. Free
tier keeps the locked Atlas Pro teaser path unchanged. 46 plugin + 153
full-suite tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
B-Task 8, orchestrator-built TDD (red first). load_fleet_config merges
the optional config over defaults (max_concurrency 3, claude routing
tiers, experimental_backends false); malformed files and invalid values
fall back silently — a broken optional config never blocks a fleet run.
resolve_backend forces every tier to Claude while experimental_backends
is false; unknown tiers resolve to standard. 7 new tests; 160 full
suite; stdlib-only holds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ime API

The integration-doc task (REQ-012) surfaced that the worker template used
message_type='question'/body=... — fields the launcher runtime rejects.
Runtime is normative (contract v1): inbox_send(target_session,
message_type, payload, sender_session) with allowlist task_handoff |
notification | data | request | heartbeat. Terminal reports now use
task_handoff with the status inside a JSON payload (task_id, status,
branch, cdd_card); questions use request. Caught by the codex peer's
push-back during doc grounding — cross-repo contract bug fixed before
the live dogfood. 46 plugin + 160 full-suite tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dogfood finding: a worker teed its TDD red->green history into its
evidence file, tripping strict Gate 5 on the historical red run.
Contract now mandates: evidence/ = one final green run; intermediate
red runs go to .atlas-ai/logs/. 46 plugin tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Live fleet dogfood finding: ship-check only read the tagged
master.tasks format, but the engine itself produces flat
{"tasks": [...]} in Manual Mechanics Mode — its own output failed its
own gate. Gate 2 now resolves master.tasks, then flat tasks, then any
tag containing a non-empty tasks list. Patched both the standalone
skel/ship-check.py and the importable prd_taskmaster/shipcheck.py;
flat-format regression test added. 161 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8-task sample built end-to-end by autonomous Claude workers via
atlas-launcher under the execute-fleet contract: 8 verified merges,
CDD card per task, durable-inbox completion per task, negative test
(kill -> re-queue once -> verified DONE), SHIP_CHECK_OK exactly once.
4 findings fixed during the run (Gate 2 flat-format, spawn-metadata
commits, evidence red-run hygiene, explicit model routing). Honest
caveat: all-Claude run; codex/gemini wave deferred to launcher release.

Phase B: all 12 tasks verified complete.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Hayden's first test-drive friction (launch-gate finding): the skill
shelled out to script.py four times for Phase 1, spraying raw JSON.
prd_taskmaster/batch.py:run_engine_preflight() now covers preflight +
taskmaster detection + provider configure/detect + capabilities in one
call with a human-presentable summary; read-only on bare dirs (configure
only attempts when a project exists). Exposed as MCP tool 20
(engine_preflight) and CLI engine-preflight. SKILL.md Phase 1 is now
MCP-preferred with the batched CLI as zero-dep fallback. 163 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ice noise)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Test-drive findings 2 and 3: (a) phase runbooks only referenced script.py
so agents shelled out even when the engine MCP server was registered —
GENERATE.md now opens with a tool-preference preamble covering both
server prefixes (atlas-engine user-scoped, plugin go). (b) DISCOVER.md:
discovery approval is the last interactive gate — after it, GENERATE
runs zero-question end-to-end, with a one-line shift+tab auto-accept
hint if permission prompts appear (skills cannot flip permission modes;
the right mechanism is allowlisting the engine's own tools, documented
for users via settings permissions.allow).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Implements Atlas license key v1 signing, vectors, docs, TS interop, and hygiene tests.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Adds the required KEY chunk completion report for the fleet orchestrator.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add stdlib-only Atlas license parsing, Ed25519 verification, state evaluation, and private persistence with test-vector coverage.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
claude and others added 23 commits June 12, 2026 00:27
Add the Worker TypeScript project, D1 schema, local test harness, route skeleton, deployment dry-run script, runbook, secret scan workflow, and Task 4 acceptance card.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add license activation UX, JSON escape hatch, license-aware capabilities, MCP activation, and handoff license-state copy.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Record CLIENT chunk shipped tasks, evidence, and the remaining legacy test compatibility concern.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add Stripe webhook signature verification, event idempotency, Worker-side license signing, checkout issuance, invoice renewal, cancellation handling, local replay docs, and Task 5 evidence.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
…nse (task 3)

Premium tier requires launcher AND active/grace license per REQ-006; the
pre-existing expectation (launcher alone => premium) was obsoleted by the
licensing feature. Authorized as integrator — file was outside the CLIENT
chunk's domain, flagged in its DONE_WITH_CONCERNS report.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add Resend email payload generation, transient retry handling, typed delivery failures, Stripe webhook waitUntil isolation, live-send docs, blocked integration logging, and Task 6 evidence.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add /license/refresh with CORS, Stripe subscription checks, signed key refresh, D1 cancellation handling, per-lid daily rate limiting, local migration, ops docs, blocked live integration logging, and Task 7 evidence.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add telemetry schema validation, D1 telemetry_events migration, Analytics Engine counter writes, KPI query documentation, deploy/smoke blocked logging, and Task 10 evidence.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add the backend fleet completion report with shipped commits, verification evidence, blocked live-integration items, and next operator actions.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add refresh-window decision logic, throttled refresh attempts, signed-key verification, and a guarded capabilities hook for offline-first license refresh. Cover the behavior with mocked urllib tests and capability isolation checks.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Document the repo-local /pro and /pro/success checkout contract while logging Stripe dashboard, hosted site, webhook, and live Worker work as externally blocked instead of fabricating evidence.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add privacy-first telemetry with stable install IDs, strict payload shape, opt-out handling, fire-and-forget delivery, and isolated pipeline and ship-check hooks. Cover install ID, sender, opt-out, failure tolerance, and hook behavior in pytest.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add best-effort install telemetry to install.sh and npm postinstall with env, config, and flag opt-outs documented in README. Cover shell install behavior, postinstall script behavior, and telemetry disclosure accuracy.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Record shipped NET task commits, verification evidence, honest external blockers, and orchestrator next steps for the fleet chunk.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Silent license refresh, repo-local checkout contract docs (external Stripe/site
items honestly BLOCKED), opt-out telemetry module + pipeline/shipcheck hooks,
install/postinstall pings with disclosure. Verified: 229 pytest passed +
install shell tests green in worker worktree before merge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add deterministic Atlas phase and gate rendering, update user-facing phase templates, and align locked Atlas Fleet paywall copy with the Pro price and /pro URL.

Verification: python3 -m pytest tests/ -x -q -> 235 passed, exit 0.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add portable setup skel references, peer dependency install/self-test output, deterministic quickstart walkthrough coverage, and README truth checks.

Verification: python3 -m pytest tests/ -x -q -> 240 passed, exit 0.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add UX conformance extraction helpers, banned-vocabulary lint, and Atlas Pro paywall assertions collected by the normal pytest suite.

Verification: python3 -m pytest tests/ -x -q -> 246 passed, exit 0.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Add KPI snapshot script, ops runbook, contract tests, and release evidence with honest blockers for ship-check state and live purchase validation.

Verification: python3 -m pytest tests/ -x -q -> 248 passed, exit 0. Ship-check exit 1 due missing release .taskmaster state; live purchase blocked by missing live credentials/deploy authorization.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Record shipped task commits, verification evidence, and release blockers for the UXREL fleet chunk.

Co-Authored-By: codex fleet worker <noreply@atlas-ai.au>
Terminal UX phase-grammar conformance + render module, onboarding/quickstart
polish with portability self-test, UX vocabulary + paywall lint in CI, KPI
snapshot script + runbook + release evidence. Live-purchase E2E and in-repo
ship-check release state honestly BLOCKED (logged in FLEET-REPORT-UXREL.md).
Verified: 248 pytest passed + install shell tests green in worker worktree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@anombyte93

Copy link
Copy Markdown
Owner Author

Rejected direction: backend/task-master stays optional; monetization (Stripe/license/telemetry) is not the product. History preserved at tag archive/fleet-monetization-integration.

@anombyte93 anombyte93 closed this Jun 17, 2026
@anombyte93
anombyte93 deleted the fleet-monetization-integration branch June 17, 2026 07:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants