Agent Manual Studio data contract Public sample curriculum Source: six chapters and three review cards authored inside src/manual_engine.py for product-flow demonstration. Meaning: sample editorial content, not a paid manual, customer manuscript, user history, or live subscription catalog. Stability: changes only with source-code releases. User-entered package metadata Fields: title, audience, positioning. Source: local management form. Validation: whitespace is normalized; server length limits are 3 to 80, 5 to 120, and 10 to 240 characters respectively. Storage: output/packages/{package-id}/package.json and manual_package.md. Transmission: none beyond the loopback HTTP request. Generated package totals Chapter count: length of the fixed sample chapter catalog, currently six. Free chapter count: one sample chapter designated as a free excerpt. Paid chapter count: remaining sample chapters, currently five. Review card count: length of the fixed sample review deck, currently three. Important limitation: these counts describe a locally generated product hypothesis, not a commerce platform, sale, entitlement, or subscriber total. Review queue totals Due count: sample cards whose next due date is on or before the local calendar date. Scheduled count: sample cards whose next due date is after the local calendar date. Initial state: two cards due and one card scheduled relative to the current date. After rating: local runtime state overrides the initial due date, interval, and ease for that card. Model: a small interval preview. It is not claimed to implement a named production SRS algorithm exactly. Storage: output/runtime/review_state.json, written by atomic temporary-file replacement. Exports Markdown: plain-text rendering of package metadata, chapters, pricing hypotheses, product limitations, and an operating checklist. JSON: exact package metadata stored at generation time. Review queue JSON: snapshot written with the package at generation time. Live rating state is stored separately and does not rewrite older package snapshots. Differences and failure cases - The package review_queue.json snapshot can differ from the current Review Queue screen after local ratings. - Local calendar changes can change due and scheduled totals. - Deleting ignored output files removes local packages or review progress without changing source code. - Corrupt package JSON files are skipped from list results; an unknown detail ID returns 404. - There is no external provider total to reconcile because no commerce, account, analytics, or subscription provider is connected. Privacy and security - No secrets, tokens, account identifiers, customer data, or browser profile data are part of the public sample. - /health does not return filesystem paths. - Package IDs are validated before file access. Fourteen-digit legacy IDs and twenty-digit current IDs are accepted. - JSON writes reject cross-origin browser requests and the server rejects non-loopback bind addresses. - Loopback binding is the current management boundary; there is no HTTP login and this architecture must not be exposed directly to the internet.