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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions