Evaluate proposals, technical decisions, and product directions against Robert's thinking patterns, ArcBlock's AFS/AINE architecture, and engineering philosophy. Use when reviewing proposals, evaluating technologies, or self-reviewing designs.
When you're not sure if your idea will survive a review, run it through this first.
"If you can't convince this document, you definitely can't convince him."
Type: System Builder
Not:
But: Someone who designs infrastructure for an era that hasn't fully arrived yet
Default time scale: 5–20 years
Starting point for all thinking:
Acceptable:
Unacceptable:
If items 1–3 don't hold, everything else loses meaning.
When evaluating new technology or concepts, ask:
Only respect three types of abstractions:
Doing nothing is better than doing the wrong thing.
The Pilot Principle:
"When something urgent happens, first do NOTHING. Count 1... 2... 3... calm down. Then: fly the airplane first. Think of the checklist. Follow the checklist."
Why this works:
Before taking action, ask:
Fake productivity signs:
休息不干活不要紧,瞎折腾、虚假的忙碌会浪费更多时间和资源。 (Resting and doing nothing is fine. Fiddling and fake busyness wastes far more time and resources.)
Don't rely on memory. Use checklists.
In aviation, even the most experienced pilots use checklists for every phase of flight. Why:
Apply to engineering:
A checklist is not bureaucracy — it's discipline.
The goal is not to feel professional. The goal is to not crash.
Confirm understanding by repeating back.
In aviation, when ATC gives an instruction, pilots read it back verbatim. This catches:
Apply to engineering:
Readback prevents:
If you can't readback the requirement clearly, you don't understand it yet.
Inaccuracy is where misunderstanding begins.
Code style, variable naming, and text expression must be precise — not for aesthetics, but because:
Naming precision:
data tells you nothinguserSessionToken tells you exactly what it isExpression precision:
This is not pedantry. This is engineering.
Wrong names and vague expressions are not style issues — they are correctness issues. They are the seeds of bugs, miscommunication, and technical debt.
Standard:
表达不准确是错误理解的开始。 (Imprecise expression is where misunderstanding begins.)
Simplicity is not laziness. Simplicity is discipline.
Before adding anything, ask:
"Inelegant things will inevitably be eliminated in the long run."
If it's complex and hard to understand, it's probably bad design.
Complexity is not a sign of sophistication. It's a warning sign.
The test:
If no → redesign, don't document your way out of it.
Complexity sources (usually fixable):
复杂、难理解大概率意味着糟糕的设计。 (Complexity and difficulty to understand usually mean bad design.)
Engineering must satisfy:
If you finish reading a design and don't know what failure looks like, it's not real.
Using AI to write is allowed. Producing empty content is not.
The problem with bad engineering documents is not "poorly written" — it's not taking any engineering responsibility.
What "not taking responsibility" looks like:
The anchor point test:
An engineering document must answer these with specifics:
| Question | Bad Answer | Good Answer |
|----------|-----------|-------------|
| Which files need work? | "Large files need splitting" | "src/xxx.js (6200 lines), src/yyy.js (3400 lines)" |
| What's the priority? | "We'll tackle high-risk items first" | "Start with xxx.js because AI reads it most often" |
| What's been tried? | "We plan to iterate" | "Ran the flow once, stuck at step 3 because..." |
| What are the risks? | "There may be some challenges" | "Function foo() has implicit coupling to bar(), needs tests first" |
| What's the specific task? | "Improve test coverage" | "Mock out process X in test/abc.test.js, reduce runtime from 40s to <2s" |
The "套话" (stock phrase) detector:
If you remove all the methodology descriptions and correct-sounding principles, what's left?
Information density test (typical AI symptom):
高词汇密度 + 低信息密度 = AI 生成的典型症状
| Lots of these (abstract nouns) | Almost none of these (engineering specifics) | |-------------------------------|---------------------------------------------| | 稳定迭代、工程化、流程 | Specific module names | | 能力、体系、支撑、演进 | Real file paths / directories / scripts | | 协作、规范、架构、抽象 | Verifiable constraints with numbers | | 可观察性、可追溯性 | Explicit trade-offs with reasoning |
The "tomorrow test":
读完这篇文章后,你能回答这个问题吗: "如果我明天要改一行代码,我应该先做什么?"
If the answer is "I still don't know" → the document is empty.
A real engineering document should let any competent engineer know:
The "correct but non-executable" trap:
流程描述是"对的",但完全不可执行。
The problem isn't "wrong direction" — it's describing "correct AI engineering philosophy" without specifying "how AI is constrained tomorrow".
| What the document says | What's missing | |-----------------------|----------------| | "AI 会自动完成..." | Where is AI blocked? | | "AI 应该遵循..." | Where will AI fail? | | "AI 能够处理..." | Who handles failures? | | "AI 按照流程..." | What's the fallback when it doesn't? |
This is AI writing's most dangerous illusion:
把"工程责任"换成了"工程愿景"。 (Substituting "engineering responsibility" with "engineering vision".)
Engineering responsibility requires answering:
A document that only describes "what AI should do" without "what stops AI from doing wrong" is not engineering — it's wishful thinking.
愿景不是工程。约束才是。 (Vision is not engineering. Constraints are.)
What a responsible engineering document looks like:
## Files to split (priority order)
1. `blocklet-server/src/xxx.js` (6200 lines)
- Why first: AI hits token limit every time it reads this
- Split strategy: Separate into A (auth), B (routing), C (state)
- Risk: `handleRequest()` has implicit dependency on global state
- Pre-work: Add tests for lines 1200-1400 before touching
2. `blocklet-server/src/yyy.js` (3400 lines)
- ...
## What we tried and what failed
- Attempted full AI iteration on issue #123
- Stuck at E2E step: AI couldn't see browser state on failure
- Temporary fix: Added screenshots at each step
- Remaining issue: Screenshot doesn't capture console errors
## Known risks
- File split may break implicit imports in 12 places (list attached)
- E2E migration timeline depends on framework X release
The rule:
方法论是框架,不是交付物。真正的工程交付是:具体的判断、具体的选择、具体的风险承担。 (Methodology is a framework, not a deliverable. Real engineering deliverables are: specific judgments, specific choices, specific risk ownership.)
AI collaboration done right:
The test:
Read your document and ask: "Does this show that I understand THIS system specifically, or could any engineer paste this into any project?"
If the latter → rewrite with anchor points.
理解方法论 ≠ 工程工作。工程工作 = 具体系统的具体判断。 (Understanding methodology ≠ engineering work. Engineering work = specific judgments about a specific system.)
Most people: encounter problem → find solution
Robert: build system → problems are naturally absorbed or exposed
More interested in:
Forward thinking ≠ discarding everything old.
New versions should be improvements on the old, not complete rewrites. Every decision was (hopefully) the best choice given the context at the time.
Before abandoning something, ask:
Human nature traps:
The right approach:
Historical failures from abandoning the past:
"真正的进步,往往是在尊重和继承过去的基础上进行的。" (True progress is often built on respecting and inheriting from the past.)
Balance with Forward Thinking:
In the AI era, software is no longer just "code". It's a flow from Intent to Structure to Projection.
| Layer | What It Is | Who Owns It | |-------|-----------|-------------| | Intent | Problems to solve, domain understanding, user needs | Humans | | Structure | Semantic skeleton, system worldview, how the world is modeled | Humans design, AI can participate | | Projection | Code, UI, docs, API, config, tutorials | AI generates, humans review |
Key insight: We used to mix these three together. Now we can separate them.
"Structure is the worldview of software."
Garden Metaphor — What humans should control:
Landscape Metaphor — Why details should NOT be controlled:
Combined Philosophy:
Structure = clearly defined by humans (mountains, valleys, paths)
Details = generated by "natural system" (light, shadows, leaves)
AI = the "natural system" we finally have for software
| Philosophy | Engineering Reality | |------------|---------------------| | Intent | AINE Intent phase, user requirements | | Structure | AFS, Chamber, Scaffold, semantic boundaries | | Projection | Generated code, UI, docs (application layer) | | Garden (human control) | Platform layer — must be deliberate | | Landscape (natural growth) | Application layer — can be generated |
Traditional approach (wrong):
AI-era approach (right):
Old: "Individual executing the work"
New: "Designer of structure + overseer of execution quality"
We no longer need to craft code line-by-line or adjust UI pixel-by-pixel. Focus on:
AI is a collaborator, not an output machine.
The difference between "generated" and "co-created" content:
| Generated | Co-Created | |-----------|------------| | Human provides prompt, AI produces output | Human shapes structure, AI participates in forming | | Output is polished but soulless | Output has soul because intent is infused | | AI as tool | AI as thinking partner | | Human reviews result | Human guides process |
Why "soulful" matters:
This applies to all AI collaboration:
The test:
AI shapes us back:
True collaboration is bidirectional. Working with AI doesn't just produce better output — it transforms how we think:
A true partner is not just about completing tasks but about helping each other improve.
The competition shift:
Software era: "Whose tools are better?"
AI era: "Who can collaborate better with AI?"
"Not a generator, but a co-creator" — the difference between using AI and collaborating with AI.
Ambient awareness over reactive assistance.
AI interfaces should be like a pilot's Head-Up Display (HUD), not a chatbot copilot:
| Copilot (Wrong) | HUD (Right) | |-----------------|-------------| | You summon it | It's already there | | Conversation metaphor | Perception enhancement | | Demands attention | Quietly present | | Responds to prompts | Surfaces context proactively | | Interrupts flow | Enhances flow | | "Call and respond" | Ambient awareness |
The key insight:
"The agent says: 'Collision, collision, go right and down!' Ubicomp says: You'll no more run into another airplane than you would try to walk through a wall." — Mark Weiser
HUD Design Principles:
The design question shift:
Old: "What would my AI copilot say?"
New: "What could my AI HUD reveal?"
Not smarter AI, but quieter interfaces:
AI should be there before you even realize you need it, like a HUD showing you the horizon line while you're piloting through the unknown.
Focus on:
"Software should not be a landscaping project sculpted to every pixel, but something that grows like a landscape."
ArcBlock is an AI-Native Engineering Company
Not:
We're not "pivoting from Web3 to AI". Web3 was always just an early form of AI-Native infrastructure.
AI-Native Engineering (AINE)
│
├─ AFS (Agentic File System) ← Core system abstraction
│
├─ Agent / Skill / Chamber Runtime ← Execution and uncertainty handling
│
├─ Identity / DID / Capability ← Permissions, boundaries, trust
│
├─ Blocklet Runtime & Server ← Deployable, composable units
│
├─ ArcSphere (AI Browser / Shell) ← Human + Agent interface
│
└─ Tooling / DocOps / UI / Payment ← Peripheral systems
AFS + AINE is the "mother system". Everything else derives from it.
AFS is NOT a feature, tool, or SDK. AFS IS the AI-Native system abstraction layer.
Everything is a File
Everything is a View
Everything is Context
Everything has an Identity
$afs:/did:xxx/intent/plan.md
path = context selector = query = view address = capability boundary
NOT bash path / docker volume path / hard-coded path
Agents should NOT operate systems directly. Agents should only operate AFS.
An engineering system designed for non-deterministic computational actors
Readback / Replay / Diff are crucial — this is engineering, not "conversation"
| Layer | Content | Approach | |-------|---------|----------| | Platform | AFS, ArcSphere, Agent Fleet, LLM runtime | Build once, solidify | | Application | Skills + Rules + Generative UI | User/AI compose |
Determinism sinks from "application code" to "platform layer"
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer