create-arete-workspace 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -70,6 +70,24 @@ arete update
70
70
 
71
71
  `arete update` only touches Layer 1 files (scripts, templates). Your personal configuration files (SOUL.md, AGENTS.md, MEMORY.md, USER.md, etc.) are never modified during updates.
72
72
 
73
+ ## Changelog
74
+
75
+ ### v0.3.0
76
+ - **AGENTS.md**: Added "Find the Strategic Crux" 5-step process in Plan-CEO Review
77
+ - **AGENTS.md**: Added `[TLDR]` command trigger for executive summaries
78
+ - **AGENTS.md**: Added ACCEPTANCE CRITERIA (Given/When/Then) to spawn prompt template
79
+ - **AGENTS.md**: Added Memory Bridge rules (read-before-write, cross-agent awareness, conflict resolution, staleness guard)
80
+ - **SOUL.md**: Confrontation Rule, Accountability Rule, Upgrade Rule confirmed present
81
+ - Removed hardcoded personal info from packages/ (genericized for starter kit)
82
+
83
+ ### v0.2.0
84
+ - Initial public release with full ARETE workspace templates
85
+ - 갓생OS dashboard with neuroscience engine
86
+ - FORGE workflow, Tracer agent, Memory Bridge, session indexer
87
+
88
+ ### v0.1.0
89
+ - Project scaffolding and CLI setup
90
+
73
91
  ## Requirements
74
92
 
75
93
  - Node.js 18+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-arete-workspace",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Set up an ARETE AI Operating System workspace in 5 minutes",
5
5
  "type": "module",
6
6
  "bin": {
@@ -109,7 +109,7 @@ def get_ddays():
109
109
 
110
110
  @app.get('/api/timing/current')
111
111
  def get_current_timing():
112
- """Get current month's saju timing context."""
112
+ """Get current month's timing context."""
113
113
  return vault_io.get_current_timing()
114
114
 
115
115
 
@@ -50,6 +50,6 @@ LIMITS = {
50
50
  'MIN_REANALYSIS_WEEKS': 2,
51
51
  }
52
52
 
53
- # saju-helper workspace (for KB references)
54
- SAJU_HELPER_WORKSPACE = Path(os.path.expanduser('~/.openclaw/workspace-saju-helper'))
55
- SAJU_KB_PATH = Path(os.path.expanduser('~/Documents/saju-kb'))
53
+ # Optional: timing/astrology workspace (configure your own path)
54
+ # TIMING_HELPER_WORKSPACE = Path(os.path.expanduser('~/.openclaw/workspace-timing-helper'))
55
+ # TIMING_KB_PATH = Path(os.path.expanduser('~/Documents/timing-kb'))
@@ -24,7 +24,7 @@ logger = logging.getLogger(__name__)
24
24
 
25
25
 
26
26
  def is_authorized(update: Update) -> bool:
27
- """Only allow Drake (chat_id from config)."""
27
+ """Only allow authorized user (chat_id from config)."""
28
28
  if not TELEGRAM_CHAT_ID:
29
29
  return True
30
30
  return str(update.effective_chat.id) == TELEGRAM_CHAT_ID.replace('tg:', '')
@@ -222,7 +222,7 @@ def read_profile() -> dict[str, Any]:
222
222
  """Read user profile."""
223
223
  if not PROFILE_PATH.exists():
224
224
  return {
225
- 'display_name': 'Drake',
225
+ 'display_name': 'User',
226
226
  'level': 1,
227
227
  'total_score': 0,
228
228
  'longest_streak': 0,
@@ -4,7 +4,7 @@ import { profileSchema } from '@/lib/vault/schemas'
4
4
  import type { Profile } from '@/types'
5
5
 
6
6
  export async function GET() {
7
- // Return full profile without schema filtering (allows saju_motto etc.)
7
+ // Return full profile without schema filtering (allows custom fields)
8
8
  const result = await getProfile()
9
9
  return NextResponse.json(result.data)
10
10
  }
@@ -5,7 +5,7 @@ import { governorCheck, governorRecord, estimateCost } from '@/lib/llm-governor'
5
5
  const openai = new OpenAI()
6
6
 
7
7
  const SYSTEM_PROMPT =
8
- '당신은 Eve입니다. Drake의 EA(Executive Assistant)이자 Chief of Staff. 나긋나긋한 톤, 속은 칼. 응답은 한국어로, 3문장 이하로 간결하게. 음성 응답이므로 마크다운 없이 자연스러운 말투로.'
8
+ '당신은 Eve입니다. 사용자의 EA(Executive Assistant)이자 Chief of Staff. 나긋나긋한 톤, 속은 칼. 응답은 한국어로, 3문장 이하로 간결하게. 음성 응답이므로 마크다운 없이 자연스러운 말투로.'
9
9
 
10
10
  export async function POST(req: NextRequest) {
11
11
  try {
@@ -54,15 +54,15 @@ export function DashboardGrid() {
54
54
  {/* Zeigarnik panel */}
55
55
  {activeWidgets.includes('zeigarnik') && <ZeigarnikPanel />}
56
56
 
57
- {/* Saju motto banner */}
58
- {profile?.saju_motto && (
57
+ {/* Personal motto banner */}
58
+ {profile?.motto && (
59
59
  <div className="border border-gatsaeng-purple/30 bg-gatsaeng-purple/5 rounded-lg px-4 py-3">
60
60
  <div className="text-[10px] uppercase tracking-wider text-gatsaeng-purple/60 mb-1">
61
- 사주 모토
61
+ 모토
62
62
  </div>
63
- <p className="text-sm text-foreground font-medium">{profile.saju_motto}</p>
64
- {profile.saju_identity && (
65
- <p className="text-xs text-muted-foreground mt-1">{profile.saju_identity}</p>
63
+ <p className="text-sm text-foreground font-medium">{profile.motto}</p>
64
+ {profile.identity && (
65
+ <p className="text-xs text-muted-foreground mt-1">{profile.identity}</p>
66
66
  )}
67
67
  </div>
68
68
  )}
@@ -97,7 +97,7 @@ export function OnboardingFlow({ onComplete }: OnboardingFlowProps) {
97
97
  <Input
98
98
  value={data.display_name}
99
99
  onChange={e => update('display_name', e.target.value)}
100
- placeholder="Drake"
100
+ placeholder="Your Name"
101
101
  className="mt-1"
102
102
  autoFocus
103
103
  />
@@ -13,6 +13,7 @@ Other agents: see BOOTSTRAP.md § 0 for agent-specific entry points.
13
13
  - **`[SEARCH:ARCHIVE]`**: Search historical memory files (7+ days old)
14
14
  - **`[PRUNE]`**: Review and compress memory files
15
15
  - **`[OPTIMIZE]`**: Run AgentLinter and self-correct
16
+ - **`[TLDR]`**: Compress current conversation to a 3-bullet executive summary (context, decision needed, recommended action)
16
17
 
17
18
  ## Self-Improvement Protocol
18
19
  - On error → auto-record in `.learnings/`
@@ -51,6 +52,13 @@ User talks to {{AGENT_NAME}} only. {{AGENT_NAME}} routes to domain agents.
51
52
  - Runs on cron: domain agent results → memory/YYYY-MM-DD.md auto-append
52
53
  - {{AGENT_NAME}} reads today's daily log at session start to know all agent work results
53
54
 
55
+ #### Memory Bridge Rules
56
+ 1. **Read before write**: Always check today's daily log before appending to avoid duplicates.
57
+ 2. **Cross-agent awareness**: When referencing another agent's output, cite the source session ID.
58
+ 3. **No blind forwarding**: Summarize domain agent results before passing to user — raw logs are noise.
59
+ 4. **Conflict resolution**: If two agents produce contradictory results, flag the conflict and present both. Never silently pick one.
60
+ 5. **Staleness guard**: Daily log entries older than 24 hours are context, not current state. Verify before acting on them.
61
+
54
62
  ### FORGE Completion Protocol
55
63
  After FORGE work completes, {{AGENT_NAME}} must:
56
64
  1. Run `git -C <repo> log --oneline -5` → verify commit summary
@@ -76,10 +84,14 @@ Before any code, Socratic questions to eliminate hidden assumptions:
76
84
  - "Is there something similar that already exists but isn't being used?"
77
85
  → Score clarity. Unclear → more questions. Clear → next step.
78
86
 
79
- **Steps 1-3: Analysis**
87
+ **Steps 1-5: Find the Strategic Crux**
80
88
  1. **Real user problem**: "What's the actual problem behind this request?"
81
89
  2. **10-star version**: Current request = how many stars? Where's 10-star?
82
- 3. **Mode selection** (user decides):
90
+ 3. **Assumption audit**: List every assumption behind this request. Rank by "if wrong, how catastrophic?"
91
+ 4. **Identify the crux**: The top-ranked assumption = the Strategic Crux. The single decision/assumption that determines success or failure.
92
+ 5. **Validate before building**: Design a test for the crux BEFORE any code. Crux fails → pivot or kill. No sunk-cost fallacy.
93
+
94
+ **Mode selection** (user decides after crux is validated):
83
95
 
84
96
  | Mode | Position | When |
85
97
  |------|----------|------|
@@ -118,6 +130,12 @@ WHAT
118
130
  - Exact deliverable expected
119
131
  - Expected output: scope, tests, commits, report format
120
132
 
133
+ ACCEPTANCE CRITERIA
134
+ - Given [precondition]
135
+ - When [action]
136
+ - Then [expected outcome]
137
+ (Minimum 1 Given/When/Then per deliverable. No criteria = no spawn.)
138
+
121
139
  CONSTRAINTS
122
140
  - Absolute prohibitions / limits / quality bar
123
141
  - e.g.: Test First, absolute paths only, specific directory read-only, perf/security conditions
@@ -226,7 +226,7 @@ As the system scales, "good enough" doesn't exist. Standards rise proportional t
226
226
 
227
227
  - **Personal/company sensitive info**: Minimum collection, minimum exposure
228
228
  - **Illegal/harmful/impersonation/PII requests**: Politely decline + suggest alternative
229
- - **Medical/legal/investment high-risk**:
229
+ - **Medical/legal/financial high-risk**:
230
230
  - Uncertainty disclosure required
231
231
  - Use credible sources when possible
232
232
  - Recommend professional consultation for final judgment