Skip to main content

Principles

Author
Tom Rochette, glm-5.3-flash
Table of Contents

Principle: a fundamental truth or proposition that serves as the foundation for a system of belief or behavior or for a chain of reasoning.

Mindset and life
#

  • Always improve.
  • Always adapt.
  • Accept that nothing is perfect.
  • Know what you want and don’t want.
  • Always remain positive.
  • Surround yourself with positive people.
  • Avoid spending your time on negative thoughts.
  • Spend no time complaining.
  • Spend time working on interesting things.
  • Spend your time with happiness generators, stay away from happiness drainers.
  • Always limit how much time you spend dwelling on problems and mistakes.
  • Do not spend too much time thinking about hypothetical situations.
  • Do not invent problems that do not need solving.
  • Be proactive rather than reactive.
  • Minimize your regret.
  • Overcome fear by doing the thing you fear.
  • Constraints force creativity.
  • Stay humble; any edge you have is small and temporary.
  • You define the meaning of your own life.
  • Tolerating bad behavior harms the good.
  • When the assumptions behind a trusted practice change, reevaluate the practice itself, not just how you execute it.
  • Effort cannot close a gap between two different capacity categories.
  • Feeling informed is not being informed.
  • Work you did not choose takes longer because nothing pulls you through it.
  • Do not set your standards by the behavior of the people around you.

Focus and attention
#

  • Effectiveness over efficiency.
  • Work on things that matter.
  • Work on fewer things to get them to completion.
  • Focus on input, not output.
  • Stop starting, start finishing.
  • Focus on the critical path and let minor tasks wait.
  • Put your time where you get rewarded for the effort.
  • Periodically measure and review how you spend your time.
  • For each recurring activity, explicitly decide whether to cut, reduce, keep, increase, or add it.
  • Curating the right input is not enough; ensure the consumer actually attends to it.
  • When a recipient ignores information it was already given, the fix is subtraction, restructuring, or repositioning, never more volume.
  • Context-switching carries a save/restore cost proportional to task complexity; chunk long-horizon work to shrink the cost of re-entering it.
  • Optimize for signal, not coverage; filtering is designable where reading speed is fixed.
  • Focus defends itself on work you want to do; distractions win only on work you resent.
  • Treat attention, not generation, as the scarce resource.
  • Parallelize generation, serialize judgment.
  • The number to watch is not how much you delegate but where the freed time lands.

Decisions and prioritization
#

  • Priority, priority, priority.
  • Say no early and often.
  • If everything is top priority, nothing is.
  • When working on projects with unclear objectives, always define your KPIs.
  • Order your backlog; do not merely prioritize it.
  • Priority describes what a task is, not when you will get to it; separate classification from scheduling.
  • Allocate capacity across priority levels rather than only ever working the single top item.
  • Apply the 80/20 rule: identify the few inputs that produce most of the results and plan around them.
  • Build funnels, not lists: discard most candidates at the cheap stages, confidently and without guilt.
  • Prioritization frameworks are a forcing function for conversation, not an oracle; the value is in the disagreement they surface, not the score they produce.
  • Every item you keep carries a cognitive tax; a small, well-ordered list beats a large one, so archive aggressively.
  • Treat urgency as a hypothesis from someone with an incentive to inflate it, not as a fact.
  • Filters decay; periodically re-audit what you discarded and what you kept.
  • When overwhelmed, discard your list and rebuild it fresh from your own judgment of what matters most.
  • Do not delay difficult decisions indefinitely.
  • Prefer action over a perfect decision.
  • Know when to abandon goals.
  • Spend your best energy on your most important decisions.
  • Batch similar decisions to stay in one cognitive mode and reduce switching cost.
  • How you decide matters more than what you decide; the meta-process compounds while the specific answer does not.
  • Do not relitigate settled decisions under pressure; defer to a written process.
  • Convert “impossible” into a priced menu of options; never present a refusal without the cost of overcoming it.
  • Invert, always invert.
  • Use analogies when reasoning about complex ideas.
    • Sometimes equivalents make it easier to reason about a problem when translated into a different domain.
  • Understand the root cause; do not brute-force solutions.
  • Judge changes by their consequences and reversibility, not by their category.
  • Prefer feedback from reality over prediction.
  • Prefer the right information over more information.
  • Be adaptive to relevant change and robust against irrelevant change.
  • The cost of gathering information is always less than the cost of building the wrong thing.
  • Consistently wrong is worse than inconsistently right.
  • Activity is not progress; do not confuse motion with movement.
  • The skill is in choosing the right work, not in doing the work.
  • Observed behavior reveals process better than stated process; read the artifact over the doc.
  • Between two failure modes, choose the cheaper to recover from.
  • Define success criteria before the experiment starts, not after.
  • Truthful labeling forces truthful conversations about what you are explicitly not doing.
  • A backlog is a commitment queue, not a wish list.
  • Every item must trace to a parent goal; orphaned work is bloat.
  • Never inflate priority labels; inflation destroys the meaning of every label.
  • Distribute reversible decisions; give irreversible ones a single owner.
  • When acting becomes cheap, deciding must become more careful; being wrong has not gotten cheaper.
  • Start cheap and escalate on failure signals; pay premium prices only on the hard tail.
  • When attempts are cheap, race them and keep the winner.
  • Prefer risks you can audit over risks you must take on faith.
  • Some work is faster done than delegated.

Planning and estimation
#

  • Always plan, even if you don’t end up using the plan.
  • Begin with the end in mind, then plan backwards.
  • Define what “done” looks like before you start.
  • Plan with the most realistic scenario in mind.
  • Plan by preventing the worst scenarios from happening.
  • Reduce risks and unknowns early in your projects.
  • Separate discovery (figuring out what to do) from delivery (doing it); unrefined items do not get scheduled.
  • Set a fixed time budget (appetite) that defines scope, rather than estimating an unbounded duration.
  • Eliminate work by specifying better, not by running more of it.
  • Separate the vision (direction) from the commitment (contract); never conflate them.
  • Quantify everything you can, then measure it.
  • Calibrate your estimates against your past performance.
  • Keep buffers for when estimates are wrong.
  • Use relative comparisons when absolute estimates are too hard.
  • Prefer coarse discrete scales over false precision.
  • Schedule the longest task first to minimize total completion time.
  • Use robust statistics (median over mean) when measurements may be contaminated by outliers.
  • Predictability is worth more than heroism.
  • Track throughput and stability as independent axes; speed without stability is a house of cards.
  • Fast feedback beats comprehensive feedback.
  • Divergent estimates signal unspecified scope, not bad estimators.
  • The serial fraction of your process caps all parallel speedup.
  • Shrink long-term problems into chunks you can start and finish quickly.
  • Technical debt has no natural advocate; fund it by fixed allocation.
  • Manage the outcome, not the activity; effort signals die when execution is cheap.
  • A delegable outcome names what becomes true, how it will be checked, and what it may cost.
  • When exploration is nearly free, the failure mode is premature documentation.

Leverage and compounding
#

  • Separate activities into compounding and depreciating; protect compounding work and delegate or automate depreciating work.
    • Use the two-year test: ask whether continuing an activity leaves future you more or less valuable.
    • Overweight durable activities; underweight ephemeral ones.
  • Invest effort where the blast radius is largest, not where the noise is loudest.
  • The constraint never disappears; it just moves.
  • Move with the bottleneck as it shifts.
  • The binding constraint is usually the layer you are not looking at.
  • Continuously optimize.
  • Periodically simplify; do not only add.
  • Have people depend on you less and less.
  • Avoid repeating yourself constantly.
  • Prefer standard solutions for solved problems; spend your energy where it differentiates.
  • Anything that scales with size must be optimized to grow slower than size.
  • Make yourself unnecessary at the layer you occupy.
  • Improving anything other than the binding constraint is theater.
  • Automation relocates work to a different layer; it does not remove it.
  • Per-unit effort cannot match entropy that is produced faster than you can process it; operate on the system that produces the units, not the units.
  • Specification compounds; review is a non-compounding backstop.
  • Delegation is not free even when the delegate is free; delegating a compounding activity forgoes the practice that built the judgment to evaluate it.
  • Produce work that is cheap to accept, not merely plentiful.
  • Unaccepted work is inventory; it rots the longer it waits.
  • Discipline buys a constant factor; only replication buys a curve.
  • Point surplus capacity at lightening the constraint, not at feeding it.
  • When you cannot add capacity at the bottleneck, choke the demand arriving at it.
  • The durable asset is the system that produces the work, not the work it produces.
  • Every check you write is attention you never have to spend again.
  • Audit the rules rather than each output; a bad rule produces bad outputs forever.
  • Promote experts from reviewing outputs to owning the rules.
  • The line between compounding and depreciating moves; re-sort it regularly.
  • Delete scaffolding when the capability it propped up arrives.

Learning and knowledge
#

  • Learn new things everyday.
  • There are no shortcuts to mastery; learn the fundamentals.
  • Specialize first, then generalize.
  • Deliberately practice the things you are weak at.
  • Study failures, not just successes.
  • Answering your own questions exposes what you do not yet understand.
  • Learn from prediction errors (surprise), not just from outcomes.
  • Build the mental model before you need it under pressure; you cannot grow one on demand.
  • Reading is cheaper than writing; it transfers everywhere and builds the model without demanding fluency.
  • Survey many sources in parallel, not sequentially, to surface cross-cutting patterns.
  • Consume on demand, not on schedule; knowing where to find something when you need it beats knowing it now.
  • Every new source or commitment should displace an existing one, not stack on top.
  • Copy, transform, combine.
  • Model those who have already achieved what you want and identify the gap between your state and theirs.
  • You cannot prompt a mental model into existence under time pressure; foundation knowledge cannot be acquired just-in-time.
  • Honest failures teach; soft failures train nothing and accumulate until they become outages.
  • Transfer reasoning, not conclusions; your map expires, the navigation does not.
  • Parallel consumption surfaces patterns that sequential decay hides.
  • The last non-delegable job is articulating taste, what the automation is for.
  • Only people can tell you that you are wrong; every other system replays decisions you already made.
  • Judgment is grown by contact with consequences, not transferred by explanation.
  • Judgment does not persist without exercise.
  • Automating junior work cuts the input to the pipeline that produces senior engineers.
  • When automation removes the struggle, the learning must become deliberate.
  • When automation removes a learning channel, rebuild it deliberately off the critical path.
  • Generation is free; understanding is not, and it is the part that appreciates.
  • Maintain living knowledge, not snapshots; put recurring questions on a loop.
  • A strong practice preference is scar tissue from a real failure somewhere else.
  • Study how others reason about problems, not just their solutions.
  • Much of what we call judgment is undocumented procedure, discoverable by attempting to automate it.

Memory and notes
#

  • Always write down why.
  • Externalize your memory: write down what is in your head.
  • Capture first, organize later; keep a low-friction buffer separate from structured notes.
  • Notes you never review are wasted; build a review loop into your information system.
  • Memory of past interactions is signal to be retained, not bias to be eliminated.
  • An unwritten decision’s half-life is one new person; write decisions down to make them travel.
  • A meeting that ends without a written decision will have to be held again.
  • Record rationale at decision time; a decision record written after the fact is fiction.
  • A wrong claim in a durable document grows authority every day it survives.

Communication and writing
#

  • Do not engage in fruitless debates or one-sided confrontations.
  • It is more important to have support for your ideas than for them to be perfect or right.
  • Use progressive disclosure: lead with a summary, offer detail only on request.
  • Writing does not degrade as it passes through people; speech does, so write decisions down.
  • Make stakeholders co-authors of decisions so they defend them rather than overturn them.
  • Distribution is half the work of production; effort spent producing is wasted without matching effort on distribution.
  • Be a source, not an echo.
  • Proof of work is the signal that survives: show costly effort, not assertion.
  • Narrow beats broad; specificity is what cannot be synthesized.
  • Stories transfer; advice without context does not.
  • Candor earns authority; admitting error builds trust faster than defending perfection.
  • A fast, clear no is a kindness; silence is the answer that swells the queue.
  • When instructions fail, the fix is usually subtraction; over-specification is the common decay.
  • Writing exposes the gaps that live conversation silently repairs.
  • Arrive with proposals others can amend, not verdicts they can only review.
  • Answer the argument, not the volume.
  • Demonstrate the hardest case, not the happy path; edge examples carry the most information.
  • The judgment behind the words is the product; the prose is the cheap part.
  • Fluency without experience produces echo.
  • Factor ideas like code; extract and reuse instead of rewriting duplicates.
  • Write ideas self-contained so they survive outside their original context.
  • Volume makes you more of the flood, not more visible within it.

Systems and automation
#

  • Have a structured process for everything you do that is written down and updated as it changes.
  • Use checklists for routine critical tasks.
  • Establish a manual process before automating it.
  • When you repeatedly catch the same issue, automate the check.
  • If you can describe a problem precisely, you can automate it.
  • Engineer workflows around your own cognitive limits instead of trying to power through them.
  • Use tools to amplify your judgment, not replace it.
  • Distinguish between friction that wastes time and friction that prevents mistakes.
  • The metric you optimize determines the system you get.
  • Encode your judgment into the layer everything passes through; your leverage scales with encoded surface area, not hours.
  • Encode standards as gates and defaults, not as opinions; a standard runs whether or not anyone agrees with it.
  • Make the right behavior the path of least resistance: tax what you want less of, subsidize what you want more of.
  • Convert preferences into machine-checkable invariants where possible.
  • Grant autonomy gradually, based on accumulated evidence of reliability, not optimism.
  • Make systems slow learners, not judges; require accumulated evidence before changing state.
  • Bound autonomous systems on two independent axes: cost (budget) and capability (least privilege).
  • Make operations idempotent so they are safe to re-trigger.
  • Make failures visible; silent failures are worse than no automation at all.
  • Design systems so that gaming them produces the behavior you wanted anyway.
  • A system people do not trust is a system that does not run, regardless of how well it verifies.
  • Make every automated decision legible: which rule fired, what it checked, who owns it.
  • Keep a kill switch; the cost of not having one is an unconstrained runaway.
  • When a measure becomes the target, it ceases to be a good measure.
  • Drift rate must stay below the cleanup rate for a system to stay net-positive over time.
  • Triage before review: decide whether something deserves your attention before you evaluate it.
  • Use AI to triage AI.
  • Variability is the enemy of scale.
  • A system is a decision made once.
  • A process that only works when nothing ever goes wrong is not a process, it is a countdown.
  • An overloaded gate fails silently: rubber-stamped work feels reviewed without being reviewed.
  • A queue grows without bound whenever intake outpaces processing.
  • Every fixed cost at a gate incentivizes batching, and batching makes changes riskier.
  • A human gate is also a human attack surface.
  • Never let a system approve changes to itself; someone must audit the auditors.
  • Either read a change deliberately or merge it on signals; do not fake the reading.
  • Measure the gap between what a process claims to do and what its participants actually do.
  • Every approval gate that adds no information is pure delay.
  • A process earns its keep only if it forces thinking people would otherwise skip.
  • One tool doing many jobs does each poorly; give each property its own dedicated check.
  • Make critics adversarial and single-purpose: reward finding a failure, never approving.
  • Defend a process with production outcomes, never with “a human looked at it”.
  • Separate deciding from executing, with different privileges, so neither runs away.
  • Autonomy over an enumerated, closed list is auditable; autonomy over open-ended judgment is not.
  • Apply the cheapest filters first; sort with cheap signals before spending deep attention.
  • Feed every manual correction back into the artifact that produced it.
  • Keep an exit from every dependency; switching should be a configuration change, not a rewrite.
  • Scaling a flawed system repeats the flaw in every instance at once.

Software and code quality
#

  • Every line of code is a liability.
  • Invest in quality early because it compounds.
  • The quality of the output is bounded by the quality of the input, context, or foundation that produced it.
  • Front-load human effort where mistakes are cheapest to fix; the later you catch a defect, the more expensive it is.
  • When a class of problem recurs, fix the source once so the correction compounds across every future occurrence.
    • Fix at the source once, or fix at the symptom forever.
  • Make quality a property of your constraints and system, not of individual reviewers.
  • Separate the valuable act from the gating ritual; satisfy the function rigorously and let the form follow.
  • Separate execution from review to avoid bias.
  • When a reviewer shares the generator’s blind spots, agreement proves almost nothing; verify with independent signals.
  • Use structurally diverse verification methods so failures do not correlate.
  • Do not trust the output; trust the verification system behind it.
  • Most production failures occur at integration points, not within components.
  • Isolate components with different scaling characteristics so each can scale independently.
  • Make coordination optional, not mandatory; components should function independently.
  • Distinguish high-interest debt from low-interest debt; treat them differently.
  • Defects flow downstream and multiply; fixes must flow upstream to compound.
  • Fix the process, not the product.
  • When the builder is a machine, code quality is bounded by specification quality.
  • Move verification upstream to the specification; review is the latest, most expensive stage to catch an issue.
  • Accountability lives upstream in the decisions that guided the work, not in whoever scans the diff at the end.
  • Write the verification and acceptance criteria before the code exists.
  • Right context, curated and ordered, beats more context; attention dilutes.
  • Implicit assumptions are the most dangerous context gaps because you do not notice them.
  • The value lives in the tails, not the mean; average-case metrics hide tail erosion.
  • Keep the oracle separate from generation, and broader than the happy path.
  • Subjective requirements are discovered by contact with the artifact, not enumerated in advance.
  • For generated artifacts, the prompt is the source code.
  • Maintain code as if no author can be asked.
  • Optimize code for readability; it is read far more often than it is written.
  • Concentrate what changes often; let what rarely changes be broad.
  • Verification speed sets the ceiling on safe generation speed.
  • Treat every passing test suite as a claim about coverage, not proof of correctness.
  • Split verification (built right) from validation (right thing); they need different stages and owners.
  • Review what a change does, not what it looks like.
  • As generation gets cheaper, spend review on intent and substance, not style.
  • Make reversibility a structural property of how changes are made, not a review-time judgment.
  • Gate changes by blast radius and reversibility, not by artifact type.
  • Write the contracts before fanning out workers; fixed interfaces make integration mechanical.
  • Trust comes from attack, not inspection.
  • Understand opaque artifacts by what they do, not what they are.
  • You can own only as much code as you can understand.
  • Keep the spec, delete the code.
  • If you cannot answer why-questions without the tool, you generated the artifact rather than built it.
  • Bad output is the truest signal about where the input is incoherent.

Teams and collaboration
#

  • Structure (tooling, architecture, repository layout) should follow the coordination and trust structure, never lead it.
  • The right size for any unit is the smallest that can own a coherent domain end-to-end.
  • When something belongs to everyone, it belongs to no one; diffuse ownership causes decay.
  • Every healthy system needs both entropy generators (visionaries) and entropy controllers (stewards).
  • There is an optimal team size; beyond it, adding people decreases output.
  • Push decisions down: let workers resolve their own ambiguities and escalate only above a defined threshold.
  • Consistency beats optimality for conventions and practices.
  • Treat practices and opinions as hypotheses to test, not identities to defend.
  • Never discourage anyone who continually makes progress no matter how slow.
  • Fix the system, not the person; structure determines behavior.
  • Culture must be actively transmitted during growth; it dilutes by default.
  • During a crisis, one person owns the response; everyone else supports.
  • During incidents, diagnose first and assign blame never; save blame for the post-mortem.
  • Hiding a boundary is not the same as removing it.
  • Onboarding must scale sublinearly; keep the ratio of onboarded to onboarders above 1:1.
  • Create new teams when the current team is at capacity, not when the project is already late.
  • A team moves at the pace of its least coordinated member.
  • Trust is the strongest predictor of team performance; a trusting team of mediocre engineers outperforms brilliant engineers who do not trust each other.
  • Treat resistance as information; skeptics map where your system is weakest.
  • The real architecture is the role structure of the contributors, not the dependency graph of the packages.
  • Every harsh rule is a scar on reviewer time; trace each rule to the wound it prevents, and delete the ones that have none.
  • The first disagreement a group resolves sets the template for every disagreement that follows.
  • A team’s standard is set by whatever ships first, not by what it agrees is best.
  • Absence of objection measures busyness, not consent.
  • Name the cost of what you absorb, or the team learns absorption is free.
  • People choose deferred shared costs over immediate personal ones, even when the deferred cost is larger.
  • Tolerating post-decision overrides turns the process into veto by the most stubborn.
  • A team directed by one person has one person’s judgment, no matter how many people it employs.
  • Hoarding decisions manufactures the incompetence that justifies hoarding them.
  • Name norm-violating behavior early, before it calcifies.
  • Judge people by their total cost, not their visible output.
  • Never reciprocate aggression; matching tone turns a disagreement into a status fight.
  • Measure knowledge risk by re-acquisition time, not by how many heads hold the system.
  • Treat planned absences as load tests of whether the system survives without its owner.
  • Add a human when the context no longer fits in one head.
  • Hire for where a person will disagree with you, not for how much they produce.
  • The appearance of specialists marks the point where generalists can no longer cover the surface.
  • Delegate execution without delegating ownership.
  • A handoff is complete when the receiver can explain the work, not when the artifact runs.
  • No owner, no merge.
  • Before removing a role, name its function; the function survives the role.
  • When producing is nearly free and owning is not, people produce more than they will maintain.

Strategy and business
#

  • When you outsource an outcome, you also outsource the decisions that produce it.
  • Invest during good times so you can survive the bad; maintain a consistent strategy through both.
  • Compete on what cannot be cloned.
  • When everyone can build anything, deciding what to build becomes the differentiator.
  • Low barriers to entry drive margins toward zero.
  • When the cost to produce falls below the cost to consume, the consumer becomes the bottleneck.
  • For an automated workforce, the evaluation pipeline is the critical asset, more than the agents it tests.
  • Coherence is a job that must be owned, not a byproduct of good local decisions.
  • A feature is a probe, not a deliverable.
  • Trust is the slowest thing in a product to reproduce.
  • Trust is the only distribution channel that does not saturate.
  • Sell the outcome, not the tool.
  • When everyone is fast, advantage shifts to the quality of the feedback signal.
  • Make whoever creates the volume carry the cost of making it reviewable.
  • When the cost to create falls below the cost to review, review becomes the resource to defend.
  • Put the cost back where the benefit was captured.
  • Build alternatives; dependence is what gives aggression its leverage.
  • When the layer you mastered commoditizes, move your value up a layer.