Loading...
Loading...
Compare original and translation side by side
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRSTNO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRSTFor EACH component boundary:
- Log what data enters component
- Log what data exits component
- Verify environment/config propagation
- Check state at each layer
Run once to gather evidence showing WHERE it breaks
THEN analyze evidence to identify failing component
THEN investigate that specific component# Layer 1: Workflow
echo "=== Secrets available in workflow: ==="
echo "IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}"
# Layer 2: Build script
echo "=== Env vars in build script: ==="
env | grep IDENTITY || echo "IDENTITY not in environment"
# Layer 3: Signing script
echo "=== Keychain state: ==="
security list-keychains
security find-identity -v
# Layer 4: Actual signing
codesign --sign "$IDENTITY" --verbose=4 "$APP"root-cause-tracing.mdFor EACH component boundary:
- Log what data enters component
- Log what data exits component
- Verify environment/config propagation
- Check state at each layer
Run once to gather evidence showing WHERE it breaks
THEN analyze evidence to identify failing component
THEN investigate that specific component# Layer 1: Workflow
echo "=== Secrets available in workflow: ==="
echo "IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}"
# Layer 2: Build script
echo "=== Env vars in build script: ==="
env | grep IDENTITY || echo "IDENTITY not in environment"
# Layer 3: Signing script
echo "=== Keychain state: ==="
security list-keychains
security find-identity -v
# Layer 4: Actual signing
codesign --sign "$IDENTITY" --verbose=4 "$APP"root-cause-tracing.mdloom:test-driven-developmentloom:test-driven-development| Excuse | Reality |
|---|---|
| "Issue is simple, don't need process" | Simple issues have root causes too. Process is fast for simple bugs. |
| "Emergency, no time for process" | Systematic debugging is FASTER than guess-and-check thrashing. |
| "Just try this first, then investigate" | First fix sets the pattern. Do it right from the start. |
| "I'll write test after confirming fix works" | Untested fixes don't stick. Test first proves it. |
| "Multiple fixes at once saves time" | Can't isolate what worked. Causes new bugs. |
| "Reference too long, I'll adapt the pattern" | Partial understanding guarantees bugs. Read it completely. |
| "I see the problem, let me fix it" | Seeing symptoms ≠ understanding root cause. |
| "One more fix attempt" (after 2+ failures) | 3+ failures = architectural problem. Question pattern, don't fix again. |
| 借口 | 真相 |
|---|---|
| “问题很简单,不需要走流程” | 简单问题也有根本原因。此流程处理简单Bug速度很快。 |
| “紧急情况,没时间走流程” | 系统化调试比盲目尝试更快。 |
| “先试试这个,之后再调查” | 第一次修复会定下模式。从一开始就做对。 |
| “确认修复有效后再写测试” | 未测试的修复无法持久。先写测试能验证问题。 |
| “同时做多项修复节省时间” | 无法确定哪项有效。会引入新Bug。 |
| “参考文档太长,我会调整模式” | 一知半解必然导致Bug。请完整阅读。 |
| “我看到问题了,我来修复” | 看到症状≠理解根本原因。 |
| “再试一次修复”(已经尝试2次以上) | 3次以上失败=架构问题。质疑模式,不要继续修复。 |
| Phase | Key Activities | Success Criteria |
|---|---|---|
| 1. Root Cause | Read errors, reproduce, check changes, gather evidence | Understand WHAT and WHY |
| 2. Pattern | Find working examples, compare | Identify differences |
| 3. Hypothesis | Form theory, test minimally | Confirmed or new hypothesis |
| 4. Implementation | Create test, fix, verify | Bug resolved, tests pass |
| 阶段 | 核心活动 | 成功标准 |
|---|---|---|
| 1. 根因调查 | 阅读错误信息、复现问题、检查变更、收集证据 | 理解问题是什么及为什么发生 |
| 2. 模式分析 | 寻找正常示例、对比参考实现 | 识别差异 |
| 3. 假设验证 | 形成理论、最小化测试 | 假设得到确认或形成新假设 |
| 4. 实施修复 | 创建测试用例、修复、验证 | Bug解决,测试通过 |
root-cause-tracing.mddefense-in-depth.mdcondition-based-waiting.mdroot-cause-tracing.mddefense-in-depth.mdcondition-based-waiting.md.agents/tasks/<task-id>/noteblocker## <ISO8601-timestamp> — systematic-debugging
note: root cause identified — <one-line summary>
[optional ≤ 15-line body; longer content goes to artifacts/].agents/tasks/.currenttask-journal.agents/tasks/<task-id>/noteblocker## <ISO8601-timestamp> — systematic-debugging
note: root cause identified — <单行摘要>
[可选≤15行内容;更长内容请放入artifacts/].agents/tasks/.currenttask-journal