Skip to content

post-launch wave-2: bundled deployment-pipeline demo domain + npx fold-demo #3

@DubovskiyIM

Description

@DubovskiyIM

Why

Wave-1 launch (Wednesday May 7 2026) goes with the `invest` domain — fintech, preapproval guard, real $50K rejection. Strong tech signal but narrow audience.

Wave-2 (target: 2-3 weeks post-launch) should add a domain that HN-aligned developers see in their daily work: deployment pipelines. Rollback, artifact deletion, staging-gate, code-review-as-prerequisite — these are recognized pain points, and they're a natural fit for the IDF invariant taxonomy.

What

Ontology — `deploy-pipeline` domain

Minimum viable shape:

  • Entities: `Service`, `Deployment`, `Artifact`, `ApprovalRequest`, `Build`
  • Intents (~5-6):
    • `trigger_deployment` (replace `Deployment.status`)
    • `approve_deployment` (replace `Deployment.approvalStatus`, expression invariant for SoD)
    • `promote_to_prod` (replace `Deployment.environment`, transition invariant)
    • `rollback` (replace `Service.activeDeploymentId`)
    • `delete_artifact` (`__irr.high` — irreversibility)
  • Three rejection types (deliberate test fixture):
    1. Destructive (`__irr.high`): `delete_artifact` after it's been deployed to prod → blocked, forward-correction only
    2. SoD expression: `approve_deployment` where `approver === proposer` → expression invariant rejects
    3. Lifecycle transition: `promote_to_prod` while `Build.status !== "green"` → transition invariant rejects

Implementation paths (pick one)

Path A — preset in existing Docker quickstart (cheapest, ~30 min):

  • Add `/opt/idf/src/domains/deploy/{ontology,intents}.js` upstream in `idf` repo
  • `BOOTSTRAP_DOMAIN=deploy docker compose up`
  • New `scripts/demo-rogue-deploy.mjs`, `demo-grant-deploy-approval.mjs`, `demo-smart-deploy.mjs`

Path B — standalone `npx @intent-driven/fold-demo` (deeper, ~3-5 days):

  • New package, embedded in-memory Φ-store (use `@intent-driven/engine` directly, no Express)
  • Pre-recorded scripted demo (state machine + slow-printed Claude turns)
  • Optional Claude API REPL when `ANTHROPIC_API_KEY` is set
  • Stdio MCP transport (reuse from `idf-mcp`)
  • Acceptance: `npx @intent-driven/fold-demo` works on a clean machine (Node 20, no local repos)

Recommendation: A first, then graduate to B if A gets traction. Don't skip A.

When

Not on launch day. Adds a fourth entry point, dilutes HN-thread focus, technically a new product (not a repackage). Ship as Wave-2 content 2-3 weeks after launch — gives a natural follow-up moment for "we heard you, here's the domain you actually use" conversion.

Decision frame

Open this if/when:

  • launch numbers warrant a follow-up (≥100 GH stars, ≥1K npm downloads in week 1)
  • one or more HN/X comments specifically ask about deployment / CI/CD / GitOps use cases
  • there's bandwidth to do it well rather than rushed

Don't open this:

  • if launch flops and the priority shifts to messaging fixes
  • if a more painful gap shows up first (e.g., authoring path is the real bottleneck)

Source of this idea

Discussion 2026-05-04, captured during launch prep. Author's own framing of "three rejection types" + "deployment pipeline" angle — preserved verbatim:

Bundled demo-домен. Кандидаты: task tracker (Linear-like, узнаваемо) или deployment pipeline (GitHub-Actions-like, точная аудитория HN). Я бы голосовал за deployment pipeline, потому что rollback / artifact-deletion / staging-gate — естественные lifecycle gates, и аудитория HN видит pain каждый день.

В demo-ontology обязательно 3 разных rejection: destructive (delete prod artifact), SoD (deploy без code review approval), lifecycle (promote staging→prod без green build).

In-memory Φ-store + fold (минимальный, без Express — `@intent-driven/engine` тут идеально подходит).

Stdio MCP transport (уже есть в idf-mcp — переиспользовать).

Optional Claude API call mode: при наличии `ANTHROPIC_API_KEY` в env запускается интерактивный REPL с реальным Claude и tool-use.

Без Claude API key — fallback в "scripted demo": проигрывается заранее записанный диалог с rejection'ами (как asciinema, но интерактивно).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions