Files
gastown/.beads/formulas/shiny-enterprise.formula.yaml
Steve Yegge 93d9726bbc docs: add Formula + Cook terminology and example formulas (gt-8tmz)
Updates to molecule-algebra.md:
- Added Formulas and Cooking section
- Four-tier model: Formula → cook → Proto → pour/wisp → Mol/Wisp
- Breaking Bad × Mad Max naming (Let's cook!)
- Updated vision diagram

New example formulas:
- shiny.formula.yaml (Engineer in a Box)
- rule-of-five.formula.yaml (Jeffrey's Rule expansion macro)
- security-audit.formula.yaml (AOP aspect)
- shiny-enterprise.formula.yaml (composed example)
2025-12-23 18:20:39 -08:00

67 lines
1.8 KiB
YAML

# shiny-enterprise.formula.yaml
# Full enterprise engineering workflow with all the bells and whistles
formula: shiny-enterprise
extends: shiny
description: |
Enterprise-grade engineering workflow.
Builds on Shiny with:
- Rule of Five on implementation (5x refinement)
- Security scanning (pre and post)
- Performance testing branch
- Review loop until approved
- Full logging
Cook this to get a ~30 step proto ready for serious work.
version: 1
compose:
# Apply Rule of Five to the implement step
# This expands implement → 5 steps: draft, refine-1..4
- expand:
target: implement
with: rule-of-five
# Apply security aspect to all implementation steps
# Adds security-prescan before and security-postscan after
- aspect:
pointcut: "implement.*"
with: security-audit
# Gate on security approval before submit
- gate:
before: submit
condition: "security-postscan.approved == true"
message: "Cannot submit without security approval"
# Parallel performance testing branch
# These run in parallel after implementation, before review
- branch:
from: implement.refine-4
steps:
- id: perf-test
description: Run performance benchmarks
- id: load-test
description: Run load/stress tests
- id: chaos-test
description: Run chaos engineering tests (fault injection)
join: review
# Loop review until approved (max 3 attempts)
- loop:
step: review
until: "review.output.approved == true"
max: 3
on-max: escalate
# Logging on all steps (AOP-style advice)
- advice:
target: "*"
before:
- id: log-start
description: "Log: Starting {step.id}"
after:
- id: log-end
description: "Log: Completed {step.id} with status {step.status}"