Skip to content

[Docs/strategy] Separate executable-surface closure from product capability completeness #14

Description

@a19q3

Summary

Document a precise distinction between:

  1. executable-surface closure — whether every syntax/IR shape already admitted by CellScript is complete, bounded, shape-gated, compile-time-only, or reserved; and
  2. product capability completeness — whether important CKB protocol workflows have a first-class language, artifact, builder, and evidence model at all.

The current executable-surface registry is valuable and should remain authoritative for admitted compiler shapes. It cannot prove that no important capability is missing outside the current AST/IR universe.

This issue creates a durable capability-gap ledger and connects it to the post-0.25 strategy without weakening the 0.25 scope freeze.

Why the distinction matters

A registry can be complete over its declared entries while an entire product-level feature remains unmodeled:

flowchart TB
    ALL["CKB protocol capability space"] --> IN["Admitted CellScript surface"]
    ALL --> OUT["Not-yet-modeled capabilities"]

    IN --> COMPLETE["complete / bounded"]
    IN --> SHAPE["shape-gated"]
    IN --> RESERVED["reserved / fail-closed"]

    OUT --> BUNDLE["multi-artifact ProtocolBundle"]
    OUT --> ROLES["typed cross-Script roles"]
    OUT --> HANDLE["interface-bound Script handles"]
    OUT --> TEMP["typed temporal domains"]
    OUT --> COMMIT["typed committed substate"]

    REG["Executable-surface registry"] --> IN
    REG -. "does not enumerate" .-> OUT
Loading

Without this distinction, wording such as “the only remaining feature gap” can accidentally mean either:

  • the only reserved entry in the current registry; or
  • the only product capability CellScript lacks.

Only the first claim can be established by enumerating the existing compiler surface.

Proposed documentation taxonomy

Every tracked capability should declare:

Field Meaning
capability ID stable human/machine identifier
category language, consensus runtime, artifact, builder, tooling, assurance, ecosystem
admission state absent, research, reserved, shape-gated, bounded, complete
on-chain status none, metadata-only, fail-closed, executable
builder status none, scaffold, checked, complete transaction path
evidence status none, simulator, CKB-VM, stateful, chain
interface status absent, private, package, public/versioned
owner/RFC accountable owner and accepted design record
dependencies other issues/capabilities
release eligibility experimental, candidate, stable
non-goals explicitly excluded adjacent features

The executable-surface JSON remains the machine truth for admitted compiler entries. A separate capability ledger may reference those IDs but must not duplicate or overwrite their statuses.

Initial capability ledger

Admitted but reserved consensus/runtime work

Not yet modeled as first-class product capabilities

These issues are not all release blockers. The ledger must distinguish priority and stabilization state rather than presenting a flat “missing features” list.

Toolchain correctness and product gaps

These are not additional language features. They are prerequisites for making higher-level composition and upgrade claims reproducible and inspectable.

Required strategy wording

Post-0.25 planning should use wording equivalent to:

Bounded lifecycle collection execution is the highest-risk consensus-semantic gap already admitted into CellScript syntax and IR. It remains a candidate workstream until Evidence Review accepts its use cases, owner, reviewer, capacity, and stop conditions.

It should avoid an unqualified claim that bounded collections are the only missing product capability.

The strategy should also say:

Relationship diagram

graph TD
    F["0.25 stable closure"] --> C1["#7 bounded consume"]
    C1 --> C2["#8 bounded create correspondence"]

    F --> PB["#9 ProtocolBundle prototype"]
    PB --> XR["#10 typed cross-Script roles"]
    PB --> IH["#11 exact interface-bound handles"]
    XR --> OPEN["open-role stabilization"]
    IH --> OPEN

    F --> TT["#12 typed temporal domains"]
    F --> CS["#13 committed substate research"]

    ASSURE["semantic assurance / checker / CKB-VM"] --> C1
    ASSURE --> C2
    ASSURE --> PB
    ASSURE --> XR
    ASSURE --> IH
    ASSURE --> TT
    ASSURE --> CS
Loading

This is a dependency map, not a release schedule.

Documentation changes

Update the appropriate tracked documents after the post-0.25 strategy is accepted:

Add a short rule to the documentation conventions:

“Complete” must always name its universe: compiler surface, selected shapes, artifact boundary, builder path, evidence tier, or product capability.

Completion criteria

  • A tracked document defines executable-surface closure versus product capability completeness.
  • The executable-surface registry remains authoritative and unmodified in meaning.
  • A separate versioned capability ledger records absent/research capabilities.
  • Each initial capability links to [Candidate][Consensus runtime] Implement executable bounded Cell-group consumption #7[Toolchain][Upgrade] Add a transactional package, interface, and deployment upgrade plan #20 and records status, priority, owner, dependencies, evidence, and non-goals.
  • Post-0.25 strategy wording qualifies the bounded-lifecycle claim precisely.
  • The documentation makes clear that the dependency diagram is not a release promise.
  • Every “complete” claim names its scope and evidence universe.
  • Docs, website/release copy, generated surface matrix, and tutorials use consistent terminology.
  • A documentation test or gate rejects invalid capability/admission-state values and broken issue/RFC links.
  • No absent/research capability is advertised as implemented.

Non-goals

  • expanding 0.25 implementation scope;
  • assigning release dates;
  • converting every idea into a language feature;
  • weakening E2105 or fail-closed policy;
  • duplicating the executable-surface registry;
  • treating issue creation as feature acceptance;
  • claiming the Argent comparison is a production-equivalence assessment.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions