Skip to content

Commit 9b41f92

Browse files
committed
Merge branch 'develop'
2 parents 8241959 + 2074fd1 commit 9b41f92

14 files changed

Lines changed: 753 additions & 3 deletions

File tree

skills/the-algorithm/SKILL.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
name: the-algorithm
3+
description: >
4+
Product-building operating system inspired by Elon Musk's five-step "The Algorithm" —
5+
question every requirement, delete nonessential work, simplify what remains, accelerate feedback loops,
6+
and automate last. Use this skill when shaping offers, features, onboarding, pricing, architecture,
7+
workflow, launch, or automation decisions in The Boring JavaScript Stack. Tailored for founders,
8+
designers, operators, product engineers, and AI coding agents building real products.
9+
metadata:
10+
author: sailscastshq
11+
version: '1.0.0'
12+
tags: the-algorithm, product-strategy, mvp, scope, architecture, simplification, delivery, automation, boring-stack
13+
---
14+
15+
# The Algorithm
16+
17+
The Algorithm is a subtraction-first way to build products. Its value for builders is not the factory metaphor. It is the sequence:
18+
19+
1. prove the requirement
20+
2. remove unnecessary work
21+
3. simplify the surviving path
22+
4. speed up learning and delivery
23+
5. automate only after the flow is stable
24+
25+
In The Boring JavaScript Stack, this usually means resisting extra layers and extra surfaces:
26+
27+
- no extra API when a Sails action can render an Inertia page directly
28+
- no client state system when the database and page props are enough
29+
- no queue, socket, cache, search service, or microservice until the product truly needs it
30+
- no second or third pricing idea before the first one proves itself
31+
- no AI automation over a workflow humans do not yet understand
32+
33+
## When to Use
34+
35+
Use this skill when:
36+
37+
- shaping an MVP, offer, feature spec, onboarding flow, pricing flow, internal tool, or launch plan
38+
- reviewing a bloated plan and deciding what to cut before implementation
39+
- deciding how narrow the first version should be
40+
- simplifying positioning, product promise, or distribution flow
41+
- choosing whether a page, action, helper, model, queue, websocket, or integration should exist
42+
- deciding whether to build a public API, background job, realtime feature, or custom client state layer
43+
- simplifying a tangled React, Vue, or Svelte experience into one clear happy path
44+
- improving cycle time for prototyping, testing, QA, feedback, and release
45+
- deciding what should stay manual, what should become a checklist, and what is ready for automation
46+
- steering an AI coding agent away from premature complexity and toward product outcomes
47+
- applying discipline to vibe coding so speed does not outrun judgment
48+
49+
## Default Biases
50+
51+
When this skill is active, bias toward:
52+
53+
- one primary actor before many roles
54+
- one painful job before many adjacent jobs
55+
- one obvious path before many options
56+
- one source of truth before mirrored state
57+
- one vertical slice before broad platform work
58+
- one manual proof before a permanent automation
59+
60+
## Rules
61+
62+
Read the rule files that match the decision you are making:
63+
64+
- [rules/five-steps.md](rules/five-steps.md) - The five-step sequence translated from manufacturing into builder and product work
65+
- [rules/product-shaping.md](rules/product-shaping.md) - Applying the algorithm from problem selection through offer, MVP scope, UX, pricing, distribution, and launch
66+
- [rules/boring-stack-decisions.md](rules/boring-stack-decisions.md) - How to use the algorithm to choose the simplest fitting architecture in this stack
67+
- [rules/feedback-loops.md](rules/feedback-loops.md) - How to accelerate learning, validation, testing, and release without speeding up waste
68+
- [rules/automation-last.md](rules/automation-last.md) - What is actually ready for automation, and what should remain manual for now
69+
- [rules/review-prompts.md](rules/review-prompts.md) - Reusable questions for planning, code review, roadmap pruning, and agent prompts

skills/the-algorithm/metadata.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"version": "1.0.0",
3+
"organization": "Sailscasts",
4+
"date": "March 2026",
5+
"abstract": "Product-building skill inspired by Elon Musk's five-step Algorithm and adapted for The Boring JavaScript Stack. Covers requirement scrutiny, deletion-first scope shaping, simplification of offers, products, architecture, and operations, faster feedback loops, and automation-last guidance for founders and builders using Sails.js, Inertia.js, Waterline, Tailwind CSS, Sounding, Quest, Realtime, and related stack capabilities.",
6+
"references": [
7+
"https://bookshop.org/p/books/the-algorithm-the-hypergrowth-formula-that-transformed-tesla-lululemon-general-motors-and-spacex-jonathan-mcneill/3aa79740e551c321",
8+
"https://www.penguin.co.uk/books/475948/the-algorithm-by-mcneill-jon/9781529986617",
9+
"https://www.businessinsider.com/elon-musk-tesla-manufacturing-algorithm-delete-automate-isaacson-biography-2023-9",
10+
"https://www.wsj.com/business/autos/elon-musk-tesla-space-book-excerpt-654eda83",
11+
"https://www.axios.com/2026/03/30/elon-musk-openai-altman-anthropic",
12+
"https://docs.sailscasts.com/boring-stack"
13+
]
14+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
name: automation-last
3+
description: Deciding what is ready for automation and what should remain manual for now
4+
metadata:
5+
tags: automation, ai, agents, ci, jobs, scripts, operations
6+
---
7+
8+
# Automation Last
9+
10+
Automation is a multiplier. It multiplies clarity when the workflow is sound, and multiplies confusion when it is not.
11+
12+
## What Is Ready to Automate
13+
14+
A workflow is ready when:
15+
16+
- people can describe the exact trigger
17+
- the inputs are consistent
18+
- the outputs are recognizable
19+
- the manual version has already succeeded repeatedly
20+
- edge cases are known enough to handle or escalate
21+
- somebody owns the failures
22+
23+
If those conditions are missing, automate later.
24+
25+
## Good Automation Targets
26+
27+
Strong candidates:
28+
29+
- running stable test suites in CI
30+
- repeatable setup and scaffolding
31+
- deterministic formatting and linting
32+
- scheduled jobs with clear retries and alerts
33+
- transactional emails tied to well-defined events
34+
- lifecycle messages tied to proven product moments
35+
- support or ops checklists that already exist in human form
36+
- AI assistance on bounded tasks with review points
37+
38+
## Bad Automation Targets
39+
40+
Avoid automating:
41+
42+
- a signup or onboarding flow that is still being redesigned
43+
- a sales workflow you still cannot explain clearly
44+
- a content engine around a message that has not landed yet
45+
- requirements gathering when the problem is still fuzzy
46+
- prompts that produce unstable business logic
47+
- alerting without clear response ownership
48+
- flaky tests
49+
- workflows with unresolved policy or compliance questions
50+
51+
Automating a broken process does not create leverage. It creates a faster failure mode.
52+
53+
## AI and Agent Guidance
54+
55+
AI is still automation. Treat it with the same discipline.
56+
57+
Before delegating to an agent, ask:
58+
59+
- Is the task concrete and bounded?
60+
- Do we know what good output looks like?
61+
- Can a human review the result quickly?
62+
- Will the task still exist next month, or are we automating temporary confusion?
63+
64+
Use AI after the human workflow is legible, not instead of making it legible.
65+
66+
## Boring Stack Examples
67+
68+
Examples that often belong late, not early:
69+
70+
- background jobs with `quest`
71+
- realtime fanout with `realtime`
72+
- aggressive caching layers
73+
- custom generators and codegen
74+
- autonomous content or support agents
75+
76+
Examples that often belong earlier once stable:
77+
78+
- Sounding in CI
79+
- migration scripts
80+
- deployment scripts
81+
- mail templates for known events
82+
- billing webhooks for confirmed payment flows
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
name: boring-stack-decisions
3+
description: Using the Algorithm to choose the simplest fitting architecture in The Boring JavaScript Stack
4+
metadata:
5+
tags: boring-stack, sails, inertia, architecture, waterline, quest, realtime, payments
6+
---
7+
8+
# Boring Stack Decisions
9+
10+
This stack already encodes several deletion-first opinions. Use them before inventing new layers.
11+
12+
## Default Architecture Bias
13+
14+
Prefer this sequence:
15+
16+
1. Sails action receives the request
17+
2. helper contains reusable business logic when needed
18+
3. Waterline persists the truth
19+
4. Inertia renders the page with server-provided props
20+
5. Tailwind styles the interface
21+
22+
Reach for extra infrastructure only when the product requirement clearly demands it.
23+
24+
## What to Delete First
25+
26+
When a plan feels heavy, try removing:
27+
28+
- a separate API layer for page-first product work
29+
- duplicated validation split across many places
30+
- client-side state that mirrors server truth
31+
- custom data-fetching wrappers around straightforward Inertia flows
32+
- a background job for something that is fast enough inline
33+
- realtime updates for information users can refresh
34+
- a queue, cache, or search service added for anticipated scale
35+
- a new package when the platform or stack already covers it
36+
37+
## Architecture Questions by Layer
38+
39+
### Page and Request Flow
40+
41+
Ask:
42+
43+
- Can this be one page and one action instead of a wizard or mini-app?
44+
- Can the server compute this and send it as props?
45+
- Can the successful path be a redirect instead of local mutation choreography?
46+
47+
### Domain Logic
48+
49+
Ask:
50+
51+
- Does this logic belong in a helper instead of a controller branch?
52+
- Can two helpers become one clearer helper with better naming?
53+
- Are we modeling business rules, or just compensating for a confusing UI?
54+
55+
### Data Model
56+
57+
Ask:
58+
59+
- Can one table or association replace multiple coordination structures?
60+
- Do we really need this status field, or can the state be derived?
61+
- Are we storing a source of truth or a cached convenience copy?
62+
63+
### Frontend State
64+
65+
Ask:
66+
67+
- Is this truly client-owned state, or should it come from the server?
68+
- Can `useForm` or page props replace a custom store?
69+
- Does this state need to survive reloads, or is it ephemeral UI?
70+
71+
## Add Complexity Only on Proof
72+
73+
Use the existing skills when the answer is yes:
74+
75+
- `authentication` when the product truly needs richer auth flows
76+
- `payments` when billing becomes a real requirement
77+
- `email` when transactional email is part of the core product loop
78+
- `quest` when work is slow, retryable, or scheduled
79+
- `realtime` when live updates materially change value
80+
- `durable-ui` when state genuinely belongs in the browser or URL
81+
- `testing` when faster confidence requires stronger trials
82+
83+
The burden of proof is on the new layer, not on the boring default.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
name: feedback-loops
3+
description: Accelerating learning, validation, testing, and release without speeding up waste
4+
metadata:
5+
tags: cycle-time, feedback, testing, prototyping, release, instrumentation
6+
---
7+
8+
# Feedback Loops
9+
10+
Cycle time is how long it takes to learn whether your decision was right. Faster feedback is valuable only after the work itself is small and clean.
11+
12+
## Shorten the Proof Path
13+
14+
Prefer the fastest proof that can kill or confirm the idea:
15+
16+
1. written hypothesis
17+
2. static mock or page stub
18+
3. local end-to-end happy path
19+
4. request-level trial
20+
5. browser trial
21+
6. beta user interaction
22+
7. production telemetry
23+
24+
Do not start at level 7 when level 3 would answer the question.
25+
26+
## Accelerate Product Delivery
27+
28+
Reduce batch size:
29+
30+
- ship vertical slices instead of parallel subsystems
31+
- keep pull requests narrow
32+
- make acceptance criteria visible
33+
- test the critical path first
34+
- stage rollout when risk is uneven
35+
36+
The goal is not maximum activity. It is minimum time between decision and evidence.
37+
38+
## Accelerate the Local Loop in This Stack
39+
40+
Use the stack's natural fast paths:
41+
42+
- render the page with Inertia before building cross-page state machinery
43+
- verify behavior with Sounding request trials before reaching for browser tests
44+
- capture mail locally before integrating a live provider
45+
- use fixtures, factories, and focused scenarios instead of giant seed states
46+
- reproduce bugs with the smallest failing page, action, helper, or model path
47+
48+
## Measure the Right Things
49+
50+
Faster loops need clear signals.
51+
52+
Track:
53+
54+
- time to first user success
55+
- completion rate of the main flow
56+
- time from bug report to reproduced case
57+
- time from change to deployed validation
58+
- support questions per new feature
59+
60+
Avoid vanity acceleration like faster builds for features nobody should have built.
61+
62+
## Review Loop Questions
63+
64+
Ask:
65+
66+
- What is the smallest end-to-end slice that proves this matters?
67+
- What evidence can we gather this week instead of next month?
68+
- Which test gives us the fastest honest confidence?
69+
- Are we speeding up the right thing, or just making motion look productive?

0 commit comments

Comments
 (0)