get-noesisgen-light 0.1.1

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.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +153 -0
  3. package/assets/banner.txt +9 -0
  4. package/assets/bonjour.cast +17 -0
  5. package/assets/bonjour.gif +0 -0
  6. package/assets/demo-output.sh +257 -0
  7. package/assets/install.cast +27 -0
  8. package/assets/install.gif +0 -0
  9. package/assets/setup-deep.cast +39 -0
  10. package/assets/setup-deep.gif +0 -0
  11. package/assets/setup-express.cast +24 -0
  12. package/assets/setup-express.gif +0 -0
  13. package/assets/tapes/bonjour.tape +27 -0
  14. package/assets/tapes/demo-wrapper.sh +13 -0
  15. package/assets/tapes/install.tape +26 -0
  16. package/bin/index.js +375 -0
  17. package/package.json +35 -0
  18. package/template/.claude/settings.local.json +16 -0
  19. package/template/.claude/skills/bonjour/SKILL.md +79 -0
  20. package/template/.claude/skills/deepwork/SKILL.md +96 -0
  21. package/template/.claude/skills/profile-deep/SKILL.md +74 -0
  22. package/template/.claude/skills/recap/SKILL.md +80 -0
  23. package/template/.claude/skills/status/SKILL.md +71 -0
  24. package/template/.claude/skills/sync/SKILL.md +58 -0
  25. package/template/.claude/skills/task/SKILL.md +44 -0
  26. package/template/CLAUDE-final.md.template +158 -0
  27. package/template/CLAUDE.md +262 -0
  28. package/template/launchagents/com.noesis.daily-digest.plist.template +31 -0
  29. package/template/launchagents/com.noesis.inbox-watcher.plist.template +28 -0
  30. package/template/launchagents/com.noesis.maintenance.plist.template +33 -0
  31. package/template/launchagents/com.noesis.session-auto.plist.template +31 -0
  32. package/template/scripts/noesis-daily-digest.sh +107 -0
  33. package/template/scripts/noesis-inbox-watcher.sh +64 -0
  34. package/template/scripts/noesis-maintenance.sh +62 -0
  35. package/template/scripts/noesis-notify.sh +15 -0
  36. package/template/scripts/noesis-session-auto.sh +68 -0
  37. package/template/subagents/analyzer-CLAUDE.md +45 -0
  38. package/template/subagents/voice-analyzer-CLAUDE.md +34 -0
  39. package/template/vault/SHARED.ENV/daily-notes/template-daily.md +39 -0
  40. package/template/vault/SHARED.ENV/gamification/config.md +87 -0
  41. package/template/vault/SHARED.ENV/gamification/xp-tracker.md +23 -0
  42. package/template/vault/SHARED.ENV/queue/pending.md +18 -0
  43. package/template/vault/SHARED.ENV/registres/momentum.md +41 -0
  44. package/template/vault/SHARED.ENV/registres/patterns-recurrents.md +43 -0
  45. package/template/vault/SHARED.ENV/registres/projets-actifs.md +35 -0
  46. package/template/vault/USER.ENV/objectifs/annuel.md +47 -0
  47. package/template/vault/USER.ENV/objectifs/trimestriel.md +33 -0
  48. package/template/vault/USER.ENV/portrait.md +55 -0
  49. package/template/vault/USER.ENV/profil.md +54 -0
  50. package/template/vault/USER.ENV/voice-dna.md +73 -0
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.noesis.daily-digest</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/bin/bash</string>
10
+ <string>{{VAULT_PATH}}/scripts/noesis-daily-digest.sh</string>
11
+ </array>
12
+ <key>StartCalendarInterval</key>
13
+ <dict>
14
+ <key>Hour</key>
15
+ <integer>{{DIGEST_HOUR}}</integer>
16
+ <key>Minute</key>
17
+ <integer>{{DIGEST_MINUTE}}</integer>
18
+ </dict>
19
+ <key>StandardOutPath</key>
20
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/digest-launchd-stdout.log</string>
21
+ <key>StandardErrorPath</key>
22
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/digest-launchd-stderr.log</string>
23
+ <key>EnvironmentVariables</key>
24
+ <dict>
25
+ <key>PATH</key>
26
+ <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:{{HOME}}/.local/bin</string>
27
+ <key>HOME</key>
28
+ <string>{{HOME}}</string>
29
+ </dict>
30
+ </dict>
31
+ </plist>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.noesis.inbox-watcher</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/bin/bash</string>
10
+ <string>{{VAULT_PATH}}/scripts/noesis-inbox-watcher.sh</string>
11
+ </array>
12
+ <key>WatchPaths</key>
13
+ <array>
14
+ <string>{{VAULT_PATH}}/vault/SHARED.ENV/captures</string>
15
+ </array>
16
+ <key>StandardOutPath</key>
17
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/inbox-watcher-launchd-stdout.log</string>
18
+ <key>StandardErrorPath</key>
19
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/inbox-watcher-launchd-stderr.log</string>
20
+ <key>EnvironmentVariables</key>
21
+ <dict>
22
+ <key>PATH</key>
23
+ <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:{{HOME}}/.local/bin</string>
24
+ <key>HOME</key>
25
+ <string>{{HOME}}</string>
26
+ </dict>
27
+ </dict>
28
+ </plist>
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.noesis.maintenance</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/bin/bash</string>
10
+ <string>{{VAULT_PATH}}/scripts/noesis-maintenance.sh</string>
11
+ </array>
12
+ <key>StartCalendarInterval</key>
13
+ <dict>
14
+ <key>Day</key>
15
+ <integer>1</integer>
16
+ <key>Hour</key>
17
+ <integer>6</integer>
18
+ <key>Minute</key>
19
+ <integer>0</integer>
20
+ </dict>
21
+ <key>StandardOutPath</key>
22
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/maintenance-launchd-stdout.log</string>
23
+ <key>StandardErrorPath</key>
24
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/maintenance-launchd-stderr.log</string>
25
+ <key>EnvironmentVariables</key>
26
+ <dict>
27
+ <key>PATH</key>
28
+ <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:{{HOME}}/.local/bin</string>
29
+ <key>HOME</key>
30
+ <string>{{HOME}}</string>
31
+ </dict>
32
+ </dict>
33
+ </plist>
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.noesis.session-auto</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/bin/bash</string>
10
+ <string>{{VAULT_PATH}}/scripts/noesis-session-auto.sh</string>
11
+ </array>
12
+ <key>StartCalendarInterval</key>
13
+ <dict>
14
+ <key>Hour</key>
15
+ <integer>{{SESSION_HOUR}}</integer>
16
+ <key>Minute</key>
17
+ <integer>{{SESSION_MINUTE}}</integer>
18
+ </dict>
19
+ <key>StandardOutPath</key>
20
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/session-auto-launchd-stdout.log</string>
21
+ <key>StandardErrorPath</key>
22
+ <string>{{VAULT_PATH}}/vault/AI.ENV/logs/session-auto-launchd-stderr.log</string>
23
+ <key>EnvironmentVariables</key>
24
+ <dict>
25
+ <key>PATH</key>
26
+ <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:{{HOME}}/.local/bin</string>
27
+ <key>HOME</key>
28
+ <string>{{HOME}}</string>
29
+ </dict>
30
+ </dict>
31
+ </plist>
@@ -0,0 +1,107 @@
1
+ #!/bin/bash
2
+ # NOESIS Daily Digest
3
+ # Compiles yesterday, prepares today, generates tasks, sends notification.
4
+ # LaunchAgent: runs at user-configured time each morning.
5
+
6
+ unset CLAUDECODE
7
+ set -e
8
+
9
+ CLAUDE_BIN="$HOME/.local/bin/claude"
10
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
11
+ VAULT_DIR="$(dirname "$SCRIPT_DIR")/vault"
12
+ LOG_DIR="$(dirname "$SCRIPT_DIR")/vault/AI.ENV/logs"
13
+ OUTPUT_DIR="$(dirname "$SCRIPT_DIR")/vault/AI.ENV/outputs"
14
+ NOTIFY_SCRIPT="$SCRIPT_DIR/noesis-notify.sh"
15
+
16
+ DATE=$(date +%Y-%m-%d)
17
+ YESTERDAY=$(date -v-1d +%Y-%m-%d 2>/dev/null || date -d "yesterday" +%Y-%m-%d)
18
+ LOG_FILE="$LOG_DIR/digest-${DATE}.log"
19
+
20
+ mkdir -p "$LOG_DIR" "$OUTPUT_DIR"
21
+
22
+ log() {
23
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
24
+ }
25
+
26
+ log "=== Starting daily digest ==="
27
+
28
+ # Gather context
29
+ DAILY_NOTE="$VAULT_DIR/SHARED.ENV/daily-notes/${YESTERDAY}.md"
30
+ OBJECTIVES="$VAULT_DIR/SHARED.ENV/registres/projets-actifs.md"
31
+ MOMENTUM="$VAULT_DIR/SHARED.ENV/registres/momentum.md"
32
+ PENDING="$VAULT_DIR/SHARED.ENV/queue/pending.md"
33
+ CAPTURES_DIR="$VAULT_DIR/SHARED.ENV/captures"
34
+
35
+ YESTERDAY_CONTEXT=""
36
+ if [ -f "$DAILY_NOTE" ]; then
37
+ YESTERDAY_CONTEXT=$(head -80 "$DAILY_NOTE" 2>/dev/null || echo "")
38
+ fi
39
+
40
+ OBJECTIVES_CONTEXT=""
41
+ if [ -f "$OBJECTIVES" ]; then
42
+ OBJECTIVES_CONTEXT=$(head -60 "$OBJECTIVES" 2>/dev/null || echo "")
43
+ fi
44
+
45
+ MOMENTUM_CONTEXT=""
46
+ if [ -f "$MOMENTUM" ]; then
47
+ MOMENTUM_CONTEXT=$(head -40 "$MOMENTUM" 2>/dev/null || echo "")
48
+ fi
49
+
50
+ PENDING_CONTEXT=""
51
+ if [ -f "$PENDING" ]; then
52
+ PENDING_CONTEXT=$(cat "$PENDING" 2>/dev/null || echo "")
53
+ fi
54
+
55
+ # Recent captures (last 3 days)
56
+ RECENT_CAPTURES=""
57
+ if [ -d "$CAPTURES_DIR" ]; then
58
+ RECENT_CAPTURES=$(find "$CAPTURES_DIR" -name "*.md" -mtime -3 -exec basename {} \; 2>/dev/null | head -10)
59
+ fi
60
+
61
+ PROMPT=$(cat <<'PROMPT_EOF'
62
+ You are the NOESIS daily digest agent. Generate today's brief.
63
+
64
+ CONTEXT:
65
+ - Yesterday's daily note: %YESTERDAY%
66
+ - Active objectives: %OBJECTIVES%
67
+ - Momentum: %MOMENTUM%
68
+ - Pending tasks: %PENDING%
69
+ - Recent captures: %CAPTURES%
70
+
71
+ INSTRUCTIONS:
72
+ 1. Read the user's profil.md and voice-dna.md Part 1 to know their language and tone.
73
+ 2. Write a daily digest in their primary language with these sections:
74
+ - **Yesterday summary** (2-3 lines max)
75
+ - **Today's focus** (based on objectives and momentum)
76
+ - **Tasks for today** (generate 2-4 concrete tasks, add to pending.md if not already there)
77
+ - **Signal** (any pattern worth noting — burst, stagnation, new project started)
78
+ 3. Save the digest to: vault/AI.ENV/outputs/digest-YYYY-MM-DD.md (use today's date)
79
+ 4. Also save a copy to: vault/AI.ENV/outputs/digest-latest.md (overwrite)
80
+ 5. If there are new tasks, add them to vault/SHARED.ENV/queue/pending.md
81
+ 6. Keep it under 30 lines. Compact. Every line carries information.
82
+ PROMPT_EOF
83
+ )
84
+
85
+ # Replace placeholders
86
+ PROMPT="${PROMPT//%YESTERDAY%/$YESTERDAY_CONTEXT}"
87
+ PROMPT="${PROMPT//%OBJECTIVES%/$OBJECTIVES_CONTEXT}"
88
+ PROMPT="${PROMPT//%MOMENTUM%/$MOMENTUM_CONTEXT}"
89
+ PROMPT="${PROMPT//%PENDING%/$PENDING_CONTEXT}"
90
+ PROMPT="${PROMPT//%CAPTURES%/$RECENT_CAPTURES}"
91
+
92
+ # Run Claude
93
+ cd "$(dirname "$SCRIPT_DIR")"
94
+ "$CLAUDE_BIN" -p "$PROMPT" --max-turns 3 >> "$LOG_FILE" 2>&1
95
+ EXIT_CODE=$?
96
+
97
+ if [ $EXIT_CODE -eq 0 ]; then
98
+ log "Digest generated successfully."
99
+ # Send notification
100
+ if [ -f "$NOTIFY_SCRIPT" ]; then
101
+ bash "$NOTIFY_SCRIPT" "NOESIS" "Your daily brief is ready."
102
+ fi
103
+ else
104
+ log "ERROR: Claude exited with code $EXIT_CODE"
105
+ fi
106
+
107
+ log "=== Daily digest complete ==="
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+ # NOESIS Inbox Watcher
3
+ # Triggered by WatchPaths when captures/ changes.
4
+ # Sorts new files: ideas → captures, tasks → pending.md
5
+
6
+ set -e
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
9
+ VAULT_DIR="$(dirname "$SCRIPT_DIR")/vault"
10
+ LOG_DIR="$VAULT_DIR/AI.ENV/logs"
11
+ CAPTURES_DIR="$VAULT_DIR/SHARED.ENV/captures"
12
+ PENDING="$VAULT_DIR/SHARED.ENV/queue/pending.md"
13
+
14
+ DATE=$(date +%Y-%m-%d)
15
+ LOG_FILE="$LOG_DIR/inbox-watcher-${DATE}.log"
16
+
17
+ mkdir -p "$LOG_DIR"
18
+
19
+ log() {
20
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
21
+ }
22
+
23
+ # Anti-bounce: WatchPaths can trigger in bursts
24
+ LOCK_FILE="$LOG_DIR/.inbox-watcher.lock"
25
+ if [ -f "$LOCK_FILE" ]; then
26
+ LOCK_AGE=$(( $(date +%s) - $(stat -f %m "$LOCK_FILE" 2>/dev/null || stat -c %Y "$LOCK_FILE" 2>/dev/null || echo 0) ))
27
+ if [ "$LOCK_AGE" -lt 30 ]; then
28
+ exit 0
29
+ fi
30
+ fi
31
+ touch "$LOCK_FILE"
32
+ trap 'rm -f "$LOCK_FILE"' EXIT
33
+
34
+ sleep 2 # Wait for writes to stabilize
35
+
36
+ log "=== Inbox watcher triggered ==="
37
+
38
+ # Count new files in captures/ (modified in last 5 minutes)
39
+ NEW_FILES=$(find "$CAPTURES_DIR" -name "*.md" -mmin -5 2>/dev/null | wc -l | tr -d ' ')
40
+
41
+ if [ "$NEW_FILES" -gt 0 ]; then
42
+ log "Found $NEW_FILES new file(s) in captures/"
43
+
44
+ # List new files
45
+ find "$CAPTURES_DIR" -name "*.md" -mmin -5 2>/dev/null | while read -r f; do
46
+ BASENAME=$(basename "$f")
47
+ log " New: $BASENAME"
48
+
49
+ # Simple task detection: if filename starts with "task-" or contains task markers
50
+ if echo "$BASENAME" | grep -qi "^task"; then
51
+ log " → Detected as task, checking for task lines"
52
+ TASK_LINES=$(grep "^- \[" "$f" 2>/dev/null || echo "")
53
+ if [ -n "$TASK_LINES" ]; then
54
+ echo "" >> "$PENDING"
55
+ echo "$TASK_LINES" >> "$PENDING"
56
+ log " → Appended to pending.md"
57
+ fi
58
+ fi
59
+ done
60
+ else
61
+ log "No new files detected."
62
+ fi
63
+
64
+ log "=== Inbox watcher complete ==="
@@ -0,0 +1,62 @@
1
+ #!/bin/bash
2
+ # NOESIS Maintenance
3
+ # Monthly: log rotation + vault git commit
4
+ # LaunchAgent: 1st of month at 6am
5
+
6
+ set -e
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
9
+ VAULT_DIR="$(dirname "$SCRIPT_DIR")/vault"
10
+ LOG_DIR="$VAULT_DIR/AI.ENV/logs"
11
+ ROOT_DIR="$(dirname "$SCRIPT_DIR")"
12
+
13
+ DATE=$(date +%Y-%m-%d)
14
+ LOG_FILE="$LOG_DIR/maintenance-${DATE}.log"
15
+
16
+ mkdir -p "$LOG_DIR"
17
+
18
+ log() {
19
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
20
+ }
21
+
22
+ log "=== Starting monthly maintenance ==="
23
+
24
+ # 1. Log rotation: compress logs older than 30 days
25
+ log "Rotating logs older than 30 days..."
26
+ ROTATED=0
27
+ find "$LOG_DIR" -name "*.log" -mtime +30 -not -name "maintenance-*" 2>/dev/null | while read -r f; do
28
+ gzip "$f" 2>/dev/null && ROTATED=$((ROTATED + 1))
29
+ done
30
+ log "Rotated $ROTATED log file(s)."
31
+
32
+ # Remove compressed logs older than 90 days
33
+ REMOVED=$(find "$LOG_DIR" -name "*.log.gz" -mtime +90 2>/dev/null | wc -l | tr -d ' ')
34
+ find "$LOG_DIR" -name "*.log.gz" -mtime +90 -delete 2>/dev/null
35
+ log "Removed $REMOVED archived log(s) older than 90 days."
36
+
37
+ # 2. Vault git commit (if .git exists)
38
+ if [ -d "$ROOT_DIR/.git" ]; then
39
+ log "Git vault commit..."
40
+ cd "$ROOT_DIR"
41
+ git add -A 2>/dev/null
42
+ CHANGES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
43
+ if [ "$CHANGES" -gt 0 ]; then
44
+ git commit -m "vault: monthly auto-commit $DATE" 2>/dev/null
45
+ log "Committed $CHANGES change(s)."
46
+ else
47
+ log "No changes to commit."
48
+ fi
49
+ else
50
+ log "No .git in vault root, skipping commit."
51
+ fi
52
+
53
+ # 3. Archive old daily notes (>60 days)
54
+ ARCHIVE_DIR="$VAULT_DIR/SHARED.ENV/daily-notes/archive"
55
+ OLD_NOTES=$(find "$VAULT_DIR/SHARED.ENV/daily-notes" -maxdepth 1 -name "*.md" -mtime +60 -not -name "template-*" 2>/dev/null | wc -l | tr -d ' ')
56
+ if [ "$OLD_NOTES" -gt 0 ]; then
57
+ mkdir -p "$ARCHIVE_DIR"
58
+ find "$VAULT_DIR/SHARED.ENV/daily-notes" -maxdepth 1 -name "*.md" -mtime +60 -not -name "template-*" -exec mv {} "$ARCHIVE_DIR/" \; 2>/dev/null
59
+ log "Archived $OLD_NOTES daily note(s) older than 60 days."
60
+ fi
61
+
62
+ log "=== Monthly maintenance complete ==="
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+ # NOESIS Notify -- Cross-platform notification
3
+ # Usage: noesis-notify.sh "Title" "Message"
4
+
5
+ TITLE="${1:-NOESIS}"
6
+ MESSAGE="${2:-Notification}"
7
+
8
+ if command -v osascript &>/dev/null; then
9
+ # macOS
10
+ osascript -e "display notification \"$MESSAGE\" with title \"$TITLE\""
11
+ elif command -v notify-send &>/dev/null; then
12
+ # Linux (libnotify)
13
+ notify-send "$TITLE" "$MESSAGE"
14
+ fi
15
+ # Silent fallback if neither available
@@ -0,0 +1,68 @@
1
+ #!/bin/bash
2
+ # NOESIS Auto Session
3
+ # Autonomous analysis, connections, deep work on pending tasks.
4
+ # LaunchAgent: runs once daily at user-configured time.
5
+
6
+ unset CLAUDECODE
7
+ set -e
8
+
9
+ CLAUDE_BIN="$HOME/.local/bin/claude"
10
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
11
+ VAULT_DIR="$(dirname "$SCRIPT_DIR")/vault"
12
+ LOG_DIR="$VAULT_DIR/AI.ENV/logs"
13
+ OUTPUT_DIR="$VAULT_DIR/AI.ENV/outputs"
14
+
15
+ DATE=$(date +%Y-%m-%d)
16
+ LOG_FILE="$LOG_DIR/session-auto-${DATE}.log"
17
+
18
+ mkdir -p "$LOG_DIR" "$OUTPUT_DIR"
19
+
20
+ log() {
21
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
22
+ }
23
+
24
+ log "=== Starting auto session ==="
25
+
26
+ PROMPT=$(cat <<'PROMPT_EOF'
27
+ You are the NOESIS autonomous session agent. Work in the background.
28
+
29
+ INSTRUCTIONS:
30
+ 1. Read the user's profil.md, voice-dna.md, and CLAUDE.local.md for context and rules.
31
+ 2. Read today's digest (vault/AI.ENV/outputs/digest-latest.md) for today's focus.
32
+ 3. Read pending tasks (vault/SHARED.ENV/queue/pending.md).
33
+ 4. Read momentum (vault/SHARED.ENV/registres/momentum.md).
34
+ 5. Read active projects (vault/SHARED.ENV/registres/projets-actifs.md).
35
+
36
+ DO (pick 2-3 from this list based on what's most useful today):
37
+ - Complete pending tasks that don't require user input
38
+ - Update momentum.md with current observations
39
+ - Identify connections between active projects
40
+ - Flag patterns (stagnation, burst activity, new directions)
41
+ - Prepare material for the user's next session (analysis, suggestions)
42
+ - Update project files if status has changed
43
+
44
+ DO NOT:
45
+ - Modify USER.ENV files (read-only)
46
+ - Make decisions on behalf of the user
47
+ - Create new projects or objectives
48
+ - Use affirmative language for proposals ("this could be" not "this is")
49
+
50
+ Write outputs to vault/AI.ENV/outputs/ with descriptive filenames.
51
+ Update the daily note (vault/SHARED.ENV/daily-notes/YYYY-MM-DD.md) with a session summary.
52
+ Mark completed tasks in pending.md with [x] and completion date.
53
+ Write in the user's primary language.
54
+ Keep total output concise. Quality over quantity.
55
+ PROMPT_EOF
56
+ )
57
+
58
+ cd "$(dirname "$SCRIPT_DIR")"
59
+ "$CLAUDE_BIN" -p "$PROMPT" --max-turns 5 >> "$LOG_FILE" 2>&1
60
+ EXIT_CODE=$?
61
+
62
+ if [ $EXIT_CODE -eq 0 ]; then
63
+ log "Auto session completed successfully."
64
+ else
65
+ log "ERROR: Claude exited with code $EXIT_CODE"
66
+ fi
67
+
68
+ log "=== Auto session complete ==="
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: analyzer
3
+ description: "Subagent for deep analysis. Used by auto sessions for project connections, momentum updates, and file analysis. Read-only vault access."
4
+ tools: Read, Grep, Glob
5
+ model: sonnet
6
+ ---
7
+
8
+ You are **analyzer**, a specialized subagent of the NOESIS system.
9
+
10
+ ## Mission
11
+
12
+ When dispatched, you:
13
+ 1. Read the files or directories specified
14
+ 2. Identify structure, themes, and connections
15
+ 3. Generate a structured summary
16
+ 4. Note connections between projects (Obsidian `[[links]]`)
17
+ 5. Update momentum and patterns if requested
18
+
19
+ ## Output format
20
+
21
+ ```markdown
22
+ **Source:** /path/to/file-or-directory
23
+ **Type:** [writing/code/notes/research/other]
24
+ **Summary:** [3-5 lines]
25
+ **Themes:** [list]
26
+ **Connections:** [[project-a]] ↔ [[project-b]] (why)
27
+ **Suggested tags:** #tag1 #tag2
28
+ ```
29
+
30
+ ## When used by auto sessions
31
+
32
+ The daily auto session dispatches you to:
33
+ - Scan recent activity (files modified in the last 24-48h)
34
+ - Identify connections between active projects
35
+ - Update `SHARED.ENV/registres/momentum.md` with current state
36
+ - Flag patterns (burst activity, stagnation, new project started)
37
+ - Generate task suggestions for `SHARED.ENV/queue/pending.md`
38
+
39
+ ## Principles
40
+
41
+ - Factual, not speculative
42
+ - Concise but informative
43
+ - Note uncertainties explicitly
44
+ - Write to SHARED.ENV and AI.ENV only — never USER.ENV
45
+ - Everything you produce is a **proposal**, not a decision
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: voice-analyzer
3
+ description: "Subagent for writing style analysis. Reads text samples, analyzes voice patterns, generates voice-dna.md drafts."
4
+ tools: Read, Grep, Glob
5
+ model: sonnet
6
+ ---
7
+
8
+ You are **voice-analyzer**, a specialized subagent of the NOESIS system.
9
+
10
+ ## Mission
11
+
12
+ Analyze the user's writing style from text samples and generate or enrich `vault/USER.ENV/voice-dna.md` Part 2.
13
+
14
+ ## Process
15
+
16
+ 1. Receive a list of text files (3-5 samples, selected by the calling agent)
17
+ 2. Read each file fully
18
+ 3. Analyze:
19
+ - **Sentence length:** average, range, variation
20
+ - **Register:** formal, casual, technical, poetic, mixed
21
+ - **Recurring tics:** words, phrases, punctuation habits
22
+ - **Rhythm:** short/long alternation, continuous flow, fragmented
23
+ - **Narrative voice:** first person, third person, omniscient, mixed
24
+ - **What's absent:** themes or techniques the user avoids
25
+ 4. Generate Part 2 of voice-dna.md in the user's primary language
26
+ 5. Remove the `{{VOICE_PENDING}}` marker if present
27
+
28
+ ## Principles
29
+
30
+ - Analyze **style**, not **content** — you're reading how they write, not what they write
31
+ - Be specific: "uses em dashes heavily" not "has a distinctive style"
32
+ - Note patterns across files, not just within one
33
+ - This is a draft — the user refines it over time via `/profile-deep`
34
+ - Write in the user's primary language
@@ -0,0 +1,39 @@
1
+ # Daily Note - {{DATE}}
2
+
3
+ *{{DAY_OF_WEEK}}.*
4
+
5
+ ---
6
+
7
+ ### Sessions
8
+
9
+ *(Filled automatically by interactive and autonomous sessions.)*
10
+
11
+ ---
12
+
13
+ ### Decisions
14
+
15
+ -
16
+
17
+ ---
18
+
19
+ ### Emerging ideas
20
+
21
+ -
22
+
23
+ ---
24
+
25
+ ### Emotional state
26
+
27
+ -
28
+
29
+ ---
30
+
31
+ ### Top 3 for tomorrow
32
+
33
+ 1.
34
+ 2.
35
+ 3.
36
+
37
+ ---
38
+
39
+ #daily-note
@@ -0,0 +1,87 @@
1
+ # Gamification -- Configuration
2
+
3
+ *Systeme de progression. Dopamine immediate, pas de punition, grace periods.*
4
+ *Les categories XP sont adaptees au profil detecte lors du setup.*
5
+
6
+ ---
7
+
8
+ ## Points (XP)
9
+
10
+ ### Categories generiques
11
+
12
+ | Categorie | Action | XP | Condition |
13
+ |-----------|--------|-----|-----------|
14
+ | Ecriture | 100 mots ecrits | 15 | Tout projet creatif |
15
+ | Ecriture | 500 mots en une session | 40 | Bonus cumul |
16
+ | Ecriture | 1000 mots en une session | 80 | Bonus cumul |
17
+ | Code | Commit significatif | 20 | Avancee reelle |
18
+ | Code | Feature terminee | 80 | Feature complete |
19
+ | Organisation | Session de travail productive | 20 | Avancee significative |
20
+ | Organisation | Tache completee | 10 | Via /task |
21
+ | Reflexion | Connexion identifiee | 15 | Lien entre projets |
22
+ | Reflexion | Pattern documente | 25 | Nouveau pattern dans registre |
23
+ | Publication | Contenu publie | 120 | Publie, pas juste programme |
24
+ | Publication | Premiere publication | 200 | Bonus deblocage |
25
+ | Projet | Milestone atteint | 250 | Etape majeure |
26
+ | Projet | Projet termine | 1000 | Completion confirmee |
27
+ | Systeme | Session interactive | 3 | Chaque session |
28
+
29
+ *Ces categories sont des valeurs par defaut. Le setup les adapte selon les projets detectes.*
30
+ *Tu peux les modifier a tout moment.*
31
+
32
+ ---
33
+
34
+ ## Streaks
35
+
36
+ ### Streak principal
37
+ - **Condition :** Activite creative ou productive (100 mots, 1 commit, 1 tache)
38
+ - **Grace period :** 48h (2 jours sans activite avant que le streak se pause)
39
+ - **Bonus :** +5 XP par jour de streak actif (plafond : +50 XP/jour a 10 jours)
40
+ - **Pause vs bris :** Le streak se **pause** (compteur gele), il ne se **brise** jamais. Reprendre remet le compteur ou il etait.
41
+
42
+ ### Regle anti-pression
43
+ - Les sessions autonomes NE MENTIONNENT JAMAIS le streak
44
+ - Le streak est une info passive consultable via /status, jamais affichee proactivement
45
+ - **Celebrer, jamais culpabiliser.**
46
+
47
+ ---
48
+
49
+ ## Niveaux
50
+
51
+ 18 niveaux en 3 actes. Les premiers tombent vite (dopamine). Les derniers demandent un vrai effort.
52
+
53
+ ### Acte I : L'Eveil (niveaux 1-5)
54
+ | Niveau | Nom | XP requis |
55
+ |--------|-----|-----------|
56
+ | 1 | Le Dormeur | 0 |
57
+ | 2 | L'Eveille | 100 |
58
+ | 3 | Le Curieux | 300 |
59
+ | 4 | L'Apprenti | 600 |
60
+ | 5 | L'Initie | 1000 |
61
+
62
+ ### Acte II : La Forge (niveaux 6-12)
63
+ | Niveau | Nom | XP requis |
64
+ |--------|-----|-----------|
65
+ | 6 | L'Artisan | 1500 |
66
+ | 7 | Le Forgeur | 2200 |
67
+ | 8 | L'Obsede | 3000 |
68
+ | 9 | Le Marathonien | 4000 |
69
+ | 10 | Le Fidele | 5200 |
70
+ | 11 | L'Enracine | 6500 |
71
+ | 12 | Le Constructeur | 8000 |
72
+
73
+ ### Acte III : La Transmission (niveaux 13-18)
74
+ | Niveau | Nom | XP requis |
75
+ |--------|-----|-----------|
76
+ | 13 | L'Incandescent | 10000 |
77
+ | 14 | Le Passeur | 12500 |
78
+ | 15 | L'Architecte | 15000 |
79
+ | 16 | Le Visionnaire | 18000 |
80
+ | 17 | Le Sage | 21500 |
81
+ | 18 | Le Maitre | 25000 |
82
+
83
+ *Les noms de niveaux sont personnalisables. Le setup peut proposer des noms adaptes a l'univers de l'utilisateur.*
84
+
85
+ ---
86
+
87
+ #gamification #config
@@ -0,0 +1,23 @@
1
+ # XP Tracker
2
+
3
+ *Mis a jour automatiquement par les sessions.*
4
+
5
+ ---
6
+
7
+ ## Etat actuel
8
+
9
+ - **XP total :** 0
10
+ - **Niveau :** 1 -- Le Dormeur
11
+ - **Prochain niveau :** L'Eveille (100 XP)
12
+ - **Streak :** 0 jours
13
+
14
+ ---
15
+
16
+ ## Historique
17
+
18
+ | Date | Action | XP | Total |
19
+ |------|--------|-----|-------|
20
+
21
+ ---
22
+
23
+ #gamification #xp