Skip to content

Epic: Duly as the standard ObjectStack template app (M4 — install it, load your catalog, run it without us) #127

Open
8 of 10 issues completed

Description

@os-warren

Why this epic exists

Ruling from the maintainer (2026-10-26, this session, in Chinese): position Duly as the standard ObjectStack template app — a platform asset and reference implementation — rather than as a standalone product bet. Direct sales, the customer's phase-2 QHSE module and phase-3 scoring are out; per-customer IM connectors are out. The product's positioning versus EHS suites is layering, not replacement: the suite stays the system of record for incidents, chemicals, permits and environmental data; Duly is the duty layer owned by the operating roles themselves. The competitor to beat is "a spreadsheet plus a chat group", not the suites.

The roadmap's M4 gate already states the bar: a customer can install it, load their own catalog, and run it without us.

What the template must be

A. From "one customer's app" to "anyone's starting point"

B. Packaged as a template

  • Repo is template-shaped: empty on pnpm dev, demo opt-in, no customer naming, README quick start for "load your own catalog"
  • Industry catalog packs, importable in ten minutes, en + zh-CN, invented references only: food-safety daily/weekly/monthly control, ISO 9001 internal audit & calibration, EHS inspections
  • Release canary: a scheduled workflow runs the four gates against the newest @objectstack/* and opens an issue on red
  • create-objectstack carries a duly (compliance calendar) template — lives in objectstack-ai/objectstack, filed separately
  • Deployment & upgrade docs, container image (Packaging and deployment — image, compose, upgrade path #20); MCP surface documented (Document the MCP surface — ask the system what is late #21); accessibility & dark mode (Accessibility and dark mode pass #22)
  • Positioning and README rewritten for the new positioning (layering vs EHS suites; template first)

C. Platform fixes the template depends on (not this repo's work)

The template does not ship with workarounds for C: it ships with the gaps filed and the affected surface documented.

Explicitly not in this epic

Phase-2 QHSE checklists · phase-3 supervision and scoring · work calendar · per-customer IM connectors · any ranking or league table (positioning: what we will not build).

Decision rule for sub-cards

Anything that changes product semantics or a security boundary goes to the maintainer as a needs-user-decision card with the four-axis analysis; everything else is PM discretion and gets dispatched.

Activity

  1. os-warren commented on Oct 26, 2026

    @os-warren
    CollaboratorAuthor

    Card set complete (round 1, 2026-10-26)

    All sub-cards for the template-app positioning now exist:

    Card State Note
    #128 Neutral progress phrases, readable position names pm:ready folds #120
    #129 Configurability matrix (Setup / Studio without code) pm:ready
    #130 [Decision] Permission model for duty review needs-user-decision maintainer inbox
    #131 Delete the pnpm demo priming boot pm:blocked on objectstack-ai/objectstack#14157
    #132 Template-shaped repo, README quick start, getting-started pm:ready
    #133 Platform canary workflow pm:ready
    #134 Catalog pack format + food-safety pack pm:ready defines the pack layout
    #135 Design docs rewrite (positioning, roadmap, README top) pm:dispatched this seat, Fable model
    #136 ISO 9001 pack pm:blocked Blocked-by: #134
    #137 EHS plant pack pm:blocked Blocked-by: #134
    objectstack-ai/objectstack#25961 create-objectstack duly template filed upstream
    #26 Timezone posture needs-user-decision re-asked with four-axis analysis

    Dispatch ownership, per the maintainer's instruction in this session: this seat creates cards and dispatches design-document cards only (#135). Code cards remain pm:ready for the lane manager; nothing else was claimed.

    Label note: area:import and area:docs do not exist in this repo, so the pack and docs cards carry area:platform-ops. The lane manager may create and re-label if an import axis is wanted.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions