Rechercher

PythonReactSEOPDF
GitHub Skill

pattern-schema

Design schemas.tsx with Input/Output types for patterns

commontoolsinc☆ 24 Étoiles du dépôt10 Forks du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

Voir la source ↗Guides

Instructions

Use Skill("ct") for ct CLI documentation when running commands.

Schema Design Phase

Goal

Create schemas.tsx with all data types and Input/Output types BEFORE any pattern code.

Read First

  • docs/common/concepts/types-and-schemas/default.md
  • docs/common/concepts/types-and-schemas/writable.md
  • docs/common/concepts/pattern.md (Input/Output section)

Rules

  1. ALWAYS use pattern<Input, Output>() - Never use single-type pattern<State>(). Single-type patterns cannot be tested via .send().
  2. Every editable field needs Writable<> in Input type (for write access)
  3. Output types never use Writable<> - they reflect returned data shape
  4. Fields that could be undefined initially: use Default<T, value>
  5. Actions in Output type: Stream<T> (enables testing and linking)
  6. Sub-patterns need [NAME]: string and [UI]: VNode in Output type

Template

import { Default, NAME, Stream, UI, VNode, Writable } from "commontools";

// ============ DATA TYPES ============
export interface Item {
  name: Default<string, "">;
  done: Default<boolean, false>;
}

// ============ PATTERN INPUT/OUTPUT ============
export interface ItemInput {
  item: Writable<Item>;  // Writable in Input = pattern will modify
}

export interface ItemOutput {
  [NAME]: string;        // Required for sub-patterns
  [UI]: VNode;           // Required for sub-patterns
  item: Item;            // No Writable in Output
  toggle: Stream<void>;  // Actions as Stream<T>
}

Done When

  • All data types defined with correct Writable/Default wrapping
  • All Input/Output types defined for each sub-pattern
  • No TypeScript errors: deno task ct check schemas.tsx --no-run

Exemples

Consultez les exemples du dépôt source.

Voir la source ↗

Historique source

Date d’indexation
2026-01-20
Mise à jour de l’index
2026-01-26
Branch
main

Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!