2.8 KiB
Demo Stack Guide (Task 019)
This guide runs a deterministic end-to-end demo from article brief to PUBLISH_COMMIT_CREATED with no external credentials.
1. Setup
From repository root:
docker compose up --build
The backend runs in demo mode in Compose:
PIPELINE_DEMO_MODE=1- local Git target:
/demo/pipeline-demo-site.git - fake deterministic section runtime with one fail-then-retry branch
- local infra only (Postgres/Redis/MinIO)
No real Codex, search, WHOIS, cloud S3, or GitHub credentials are required.
2. Role Selection
The app uses demo users via backend header selection:
- Editor flow (default):
editor@example.com - Admin actions:
admin@example.com
For the article detail page, role hint query is available:
- Editor:
/articles/<articleId>?role=editor - Admin:
/articles/<articleId>?role=admin
3. Happy Path
- Open frontend:
http://localhost:3000. - Create article from dashboard (
New article). - Complete boundary questions and submit.
- Generate plan and approve.
- Start research and open evidence matrix.
- Start draft production.
- Open article detail:
- one section job is expected to fail (deterministic demo failure),
- retry it from Admin view.
- Assemble draft.
- Run SEO and language review, resolve suggestions.
- Generate assets, upload files, approve assets.
- Final approval with publishing settings.
- Run publishing dry run.
- Create publish commit.
Expected final status: PUBLISH_COMMIT_CREATED.
4. Failure Path (Visible)
Demo mode always creates one deterministic failed section scaffold attempt on draft start:
SECTION_SCAFFOLDattempt 1 ->FAILED- retry from
/api/agent-jobs/{job_id}/retry-> auto-completesSUCCEEDED
This exposes failure/retry timeline behavior and retry policy UI controls.
5. Artifact Inspection
Workflow timeline and job logs
- Open article detail page.
- Verify mixed timeline entries for user/system/agent events.
- Admin sees detailed redacted
stdout/stderr. - Editor sees safe failure summary only.
Object storage (research artifacts/manifests)
In local integration-style runs with OBJECT_STORAGE_LOCAL_ROOT, artifacts are under:
research/<article_id>/<run_id>/source-*/section.jsonresearch/<article_id>/<run_id>/source-*/metadata.json
In Compose (MinIO), inspect bucket ${OBJECT_STORAGE_BUCKET:-pipeline-local}.
Final Git commit payload
The publish commit manifest contains:
content.path(markdown/mdx),frontmatter,assets[*].target_path.
Inspect repo in Compose:
docker compose exec backend git --git-dir /demo/pipeline-demo-site.git log --oneline -n 5
docker compose exec backend git --git-dir /demo/pipeline-demo-site.git show <commit_sha>:<content_path>
For local integration tests, repository path comes from
PIPELINE_DEMO_PUBLISH_REPO_PATH (the smoke test sets a temp path).