objectstack-formula

Author deterministic CEL expressions for ObjectStack metadata surfaces.

22|6|Updated Jan 18, 2026
One-click install
npx skills add https://github.com/objectstack-ai/framework --skill objectstack-formula
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: objectstack-formula
Source: https://github.com/objectstack-ai/framework/tree/main/skills/objectstack-formula
Command: npx skills add https://github.com/objectstack-ai/framework --skill objectstack-formula

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill prevents expression errors and non-deterministic metadata by standardizing how ObjectStack authors write CEL formulas, predicates, conditions, and dynamic seed values.

Core Features & Use Cases

  • Canonical CEL guidance for metadata: Defines the single supported expression language and the required envelope shape used across ObjectStack domains.
  • Determinism-first authoring rules: Ensures build repeatability by pinning evaluation time and banning compile-time date construction patterns.
  • Correct surface-to-dialect mapping: Clarifies when to use CEL helpers, cron, template interpolation, and reserved JS surfaces to avoid silent null evaluations.
  • Predicate patterns for validation and visibility: Provides reusable patterns for coalescing nullable values, null checks, and guard-safe computations.

Quick Start

Use the objectstack-formula skill when you need to express a boolean visibility predicate or computed field as CEL and want it to compile deterministically across builds.

Frequently Asked Questions about objectstack-formula

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write safe CEL formulas for validation predicates?

To write safe CEL validation predicates, use the required expression envelope and null-safety patterns like coalescing nullable values. This prevents silent null evaluations and ensures deterministic evaluation across ObjectStack metadata surfaces.

Why does my CEL formula break deterministic builds?

CEL formulas break deterministic builds when using compile-time date construction patterns. Enforcing determinism-first authoring rules pins evaluation time and bans these patterns to guarantee build repeatability across metadata.

What is the correct way to map CEL dialects for flow automation logic?

Correct surface-to-dialect mapping clarifies when to use CEL helpers, cron, template interpolation, and reserved JS surfaces. This ensures your flow automation decision logic evaluates correctly without silent null failures.

Can I use standard JavaScript expressions instead of CEL for computed fields?

Standard JavaScript expressions are reserved for specific JS surfaces, but computed fields require canonical CEL syntax. Using the required expression envelope with CEL guarantees deterministic evaluation across all metadata domains.

How do I handle null values in ObjectStack visibility conditions?

Handle null values in visibility conditions by applying reusable predicate patterns for coalescing nullable values and null checks. These guard-safe computations prevent silent null evaluations and ensure correct visibility logic.

What's the best way to author dynamic seed values for cron scheduling?

The best way to author dynamic seed values for cron scheduling is using the protocol's dialect-specific requirements and correct surface-to-dialect mapping. This enforces determinism constraints and proper stdlib helper usage for repeatable builds.