jdubray
A least-privilege linter for Claude Code agent policies
Polygraph – Now your tests can't lie
So a non-technical friend emailed me with some questions about AI and who is leading, now that Grok and Meta are dropping from the race. He asked as a question, "It seems that Anthropic is leading?"
Gmail suggested a full reply, first time. I never saw Gmail writing entire emails for me before... And Google is not holding back. Nobody is going to catch me saying either. I never saw Claude Code perform terribly, au contraire...
This is shameful. How can you trust AI writing entire documents when they can push the company's agenda at any time.
That is a big problem, a problem, if not addressed will kill that industry. Imagine if, say, a government instructs a Coding Agent (or releases a Coding Agent) that introduces backdoors in your code? Can't happen right?
Spec-Driven Development is an emerging practice, but for most people it just means a collection of stale organically structured markdown documents, covering more or less the entirety of the system.
This article introduces the concept of a Sekkei (blueprint) and Generative Lifecycle Management (GLM).
Git repo for Sekkei specification and GLM Server.
Follow up article: - Vibe Designing with Claude Code (using GLM CLI) - How to scale GLM to a small team?
A GraphQL-Based Schema Architecture for Microservices
That problem has not really been solved yet with OpenAPI and other approaches. What is novel here is the elegance and simplicity of the GraphQL syntax used in the context of schema definitions.
HEX: A No Framework Approach to Building Modern Web Apps
SAM can also be used for stateful API/Microservice orchestrations [2]
If you want a slightly more formal introduction to SAM and its relationship to TLA+ (again, based on my own interpretation) I gave this lecture last month [3].
[2] http://www.ebpml.org/blog15/2015/06/designing-a-reliable-api...
[3] http://cloudsentinel.com/sam-state-machines-and-computation....
SAM fixes three approximations that we have been using in Software Engineering for Decades:
- actions can manipulate application state
- assignments are equivalent to mutation
- there is no need to define precisely what is a programming step (for instance when you write a = b + c, is that a step or is it 3 steps: read b,c, compute b+c, mutate the value of a)
To a certain degree, Redux and Elm are trying to address these three approximations as well, but they do it from a FP point of view, not from a TLA+ point of view.
Their definition of action aligns with the one of event and their approach to mutation is immutability. The main difference between SAM and Redux/Elm is the way side-effects are treated. SAM embraces side-effects (in particular asynch calls) while Redux/Elm don't know how to deal with them. Redux for instance breaks its principle #1 (single state tree) by introducing Sagas.
SAM is a factoring of your code that fits in one line of code: V = State(Model.present(Action(event))).then(nextAction)
No need for a nebula of libraries or inventing a whole new language.
What happens when someone super smart is scientifically wrong?
Saw a pitch from FanWide last night (a future unicorn), reminded me of this post
Lessons learned building Front-Ends with the SAM pattern
An alternative to FRP: the SAM Pattern (10 min introduction)
The Official Guide to the SAM Pattern (Reactive/Functional Front-Ends)
In a nutshell:
in redux the reducer updates the model as: state.counter += 1 ;
All SAM suggests is that this is an unfortunate coupling, you should write it as: // action function increment(value) { return value + 1 ; }
and then present the output of the action to the model:
state.counter = data.counter ;
Redux does not have any next-action-predicate either.