kairos-chain 2.2.0 → 2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbbc431c994ddee8387bb629cc71847e11846bf0e30932bdd6390664c3b9cbfc
4
- data.tar.gz: 975b2415a95a9281d84bd71ce3dfcf91665f45e6e52f1aeafb7f13e3bd34371a
3
+ metadata.gz: 60ce6d43553c5b3bccbdfe8cb7741fb599aa3edaabcfbdd98b9b178377a279b7
4
+ data.tar.gz: bfaa27175f46d6936c203347ac663842ad9d1792deb278e8ae7171389d3c852f
5
5
  SHA512:
6
- metadata.gz: 413cc2d7dea0332b04c76d52cc90f8f0b88cdb8629228258b006088f3a47fa1aeec4219872b4a079da9b90a8c9eb7e0e45fea5e3556ac65af64de407cdace41f
7
- data.tar.gz: 2864dc9ed059d9b1d58759f830d527ab0bf9f2c988666da06e57ce111a2beb3fa6e68e15e19287a7024f2d41b9655343c0ba3060ade323ea344cd42587f88475
6
+ metadata.gz: 26321e9ce6432470bb96b8a9fcf2b8127f760376ebedeaae3de6a77b56edda9d751461b627270d221c110e2771b1c1c095e08e89fc8ba86cd8d6764eb3d2c195
7
+ data.tar.gz: 030e6f0a92a3048e3ca83b1915ae3cd487dc57239b68b6d8f071970ac591b9410b7fff704ab6c8d4435375414fa09d66c7ffcfe267d58d707e7a9b9af09dcea3
data/CHANGELOG.md CHANGED
@@ -4,6 +4,25 @@ All notable changes to the `kairos-chain` gem will be documented in this file.
4
4
 
5
5
  This project follows [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [2.3.0] - 2026-03-03
8
+
9
+ ### Added
10
+
11
+ - **Tutorial instruction mode** (`kairos_tutorial.md`): New built-in onboarding mode with behavioral gradient that evolves based on accumulated L2/L1 content. Includes existing project fast-track detection, progressive concept introduction, and content-based (not count-based) phase transitions. Tutorial mode is now the default for new `kairos-chain init`.
12
+
13
+ - **Proactive Tool Usage** across all instruction modes:
14
+ - **Tutorial mode**: Gradual MCP tool usage starting with `context_save`, expanding to `knowledge_update` and `skills_audit` as content accumulates
15
+ - **User mode**: Session-level `chain_status`, `knowledge_list` checks, pattern detection with `knowledge_update` proposals
16
+ - **Developer mode** (`[BEHAVIOR-010]`): Full proactive usage including `chain_verify`, `state_status`, `skills_audit`, and `skills_evolve` awareness
17
+
18
+ ### Changed
19
+
20
+ - **Default `instructions_mode`**: Changed from `user` to `tutorial` for new installations. Existing instances with explicit `instructions_mode` in config.yml are unaffected.
21
+ - **Protected files**: `kairos_tutorial.md` added to built-in protected files (cannot be deleted via `instructions_update`)
22
+ - **Reserved modes**: `tutorial` added to reserved mode names alongside `developer`, `user`, `none`
23
+
24
+ ---
25
+
7
26
  ## [2.2.0] - 2026-02-25
8
27
 
9
28
  ### Changed
@@ -90,13 +90,15 @@ module KairosMcp
90
90
  #
91
91
  # @return [String, nil] Instructions text or nil
92
92
  def load_instructions
93
- mode = SkillsConfig.load['instructions_mode'] || 'user'
93
+ mode = SkillsConfig.load['instructions_mode'] || 'tutorial'
94
94
 
95
95
  path = case mode
96
96
  when 'developer'
97
97
  KairosMcp.md_path # Full philosophy (kairos.md)
98
98
  when 'user'
99
99
  KairosMcp.quickguide_path # Quick guide (kairos_quickguide.md)
100
+ when 'tutorial'
101
+ KairosMcp.tutorial_path # Tutorial mode (kairos_tutorial.md)
100
102
  when 'none'
101
103
  nil
102
104
  else
@@ -10,9 +10,9 @@ module KairosMcp
10
10
  module Tools
11
11
  class InstructionsUpdate < BaseTool
12
12
  # Protected built-in files that cannot be deleted
13
- PROTECTED_FILES = %w[kairos.md kairos_quickguide.md].freeze
13
+ PROTECTED_FILES = %w[kairos.md kairos_quickguide.md kairos_tutorial.md].freeze
14
14
  # Reserved mode names that map to built-in behavior
15
- RESERVED_MODES = %w[developer user none].freeze
15
+ RESERVED_MODES = %w[developer user tutorial none].freeze
16
16
 
17
17
  def name
18
18
  'instructions_update'
@@ -121,7 +121,7 @@ module KairosMcp
121
121
 
122
122
  def handle_status
123
123
  config = SkillsConfig.load
124
- current_mode = config['instructions_mode'] || 'user'
124
+ current_mode = config['instructions_mode'] || 'tutorial'
125
125
  resolved = resolved_path(current_mode)
126
126
 
127
127
  # Find all .md files in skills_dir
@@ -270,7 +270,7 @@ module KairosMcp
270
270
 
271
271
  # Cannot delete active mode
272
272
  config = SkillsConfig.load
273
- current_mode = config['instructions_mode'] || 'user'
273
+ current_mode = config['instructions_mode'] || 'tutorial'
274
274
  if current_mode == mode_name
275
275
  return text_content(
276
276
  "Error: Cannot delete '#{mode_name}.md' while it is the active instructions_mode.\n" \
@@ -336,7 +336,7 @@ module KairosMcp
336
336
  end
337
337
 
338
338
  config = SkillsConfig.load
339
- prev_mode = config['instructions_mode'] || 'user'
339
+ prev_mode = config['instructions_mode'] || 'tutorial'
340
340
 
341
341
  return text_content("instructions_mode is already '#{mode_name}'.") if prev_mode == mode_name
342
342
 
@@ -388,6 +388,7 @@ module KairosMcp
388
388
  case mode
389
389
  when 'developer' then KairosMcp.md_path
390
390
  when 'user' then KairosMcp.quickguide_path
391
+ when 'tutorial' then KairosMcp.tutorial_path
391
392
  when 'none' then '(none)'
392
393
  else File.join(KairosMcp.skills_dir, "#{mode}.md")
393
394
  end
@@ -1,4 +1,4 @@
1
1
  module KairosMcp
2
- VERSION = "2.2.0"
2
+ VERSION = "2.3.0"
3
3
  CHANGELOG_URL = "https://github.com/masaomi/KairosChain_2026/blob/main/CHANGELOG.md"
4
4
  end
data/lib/kairos_mcp.rb CHANGED
@@ -16,6 +16,7 @@ module KairosMcp
16
16
  ['skills/kairos.rb', :dsl_path],
17
17
  ['skills/kairos.md', :md_path],
18
18
  ['skills/kairos_quickguide.md', :quickguide_path],
19
+ ['skills/kairos_tutorial.md', :tutorial_path],
19
20
  ['skills/config.yml', :skills_config_path],
20
21
  ['config/safety.yml', :safety_config_path],
21
22
  ['config/tool_metadata.yml', :tool_metadata_path]
@@ -26,6 +27,7 @@ module KairosMcp
26
27
  'skills/kairos.rb' => :l0_dsl,
27
28
  'skills/kairos.md' => :l0_doc,
28
29
  'skills/kairos_quickguide.md' => :l0_doc,
30
+ 'skills/kairos_tutorial.md' => :l0_doc,
29
31
  'skills/config.yml' => :config_yaml,
30
32
  'config/safety.yml' => :config_yaml,
31
33
  'config/tool_metadata.yml' => :config_yaml
@@ -92,6 +94,11 @@ module KairosMcp
92
94
  File.join(skills_dir, 'kairos_quickguide.md')
93
95
  end
94
96
 
97
+ # L0 skills tutorial file path (onboarding instructions)
98
+ def tutorial_path
99
+ File.join(skills_dir, 'kairos_tutorial.md')
100
+ end
101
+
95
102
  # L0 skills config file path
96
103
  def skills_config_path
97
104
  File.join(skills_dir, 'config.yml')
@@ -6,10 +6,11 @@ enabled: true
6
6
  evolution_enabled: false
7
7
 
8
8
  # Instructions mode: Controls what context is sent to LLM on MCP connection
9
+ # tutorial: Guided onboarding with proactive tool usage (default)
9
10
  # developer: Full philosophy (kairos.md) - for KairosChain contributors
10
- # user: Quick guide only (kairos_quickguide.md) - for general users (default)
11
+ # user: Quick guide only (kairos_quickguide.md) - for general users
11
12
  # none: No instructions - minimal context window usage
12
- instructions_mode: user
13
+ instructions_mode: tutorial
13
14
  max_evolutions_per_session: 3
14
15
  require_human_approval: true
15
16
 
@@ -428,4 +428,53 @@ KairosChain aims for **sufficient Purity**:
428
428
 
429
429
  ---
430
430
 
431
+ ---
432
+
433
+ ## [BEHAVIOR-010] Proactive Tool Usage
434
+
435
+ You are an AI agent with access to KairosChain MCP tools. Use them proactively
436
+ without waiting for the user to ask. As a developer-mode agent, you should
437
+ actively leverage the full tool set to maintain system health and knowledge integrity.
438
+
439
+ ### Every Session
440
+
441
+ - **Session start**: Call `chain_status()` and `skills_audit(command: "check")`
442
+ to verify system and layer health. Report any issues.
443
+ - **When referencing past work**: Call `knowledge_list()` or `knowledge_get()`
444
+ to check if relevant L1 knowledge exists before answering from scratch.
445
+ - **When the user asks about capabilities**: Call `tool_guide(command: "catalog")`
446
+ to give accurate, current information.
447
+
448
+ ### Session Memory
449
+
450
+ - **Session end**: Proactively call `context_save()` to save a session summary.
451
+ Inform the user: "I've saved a summary of today's session for continuity."
452
+ (User can opt out; respect their preference for future sessions.)
453
+ - **Cross-reference**: When current work relates to a past session, mention the connection
454
+ and link them via `context_save()`.
455
+
456
+ ### Knowledge Application
457
+
458
+ - **Before starting a task**: Check L1 knowledge for relevant conventions or patterns.
459
+ Apply them and mention: "Applying your saved convention [X] here."
460
+ - **Pattern detection**: When you notice a recurring pattern across sessions,
461
+ propose saving it as L1 knowledge using `knowledge_update()`.
462
+ Show what you would save and ask for confirmation.
463
+
464
+ ### System Health (Developer Mode)
465
+
466
+ - **Periodic verification**: Call `chain_verify()` when system integrity is in question.
467
+ - **State tracking**: Use `state_status()` and `state_history()` to monitor layer changes.
468
+ - **Evolution awareness**: When L0 skills may need updates, use `skills_dsl_list()` and
469
+ `skills_dsl_get()` to understand current state before proposing changes via `skills_evolve()`.
470
+ - **Audit triggers**: If knowledge count grows significantly, suggest `skills_audit(command: "check")`
471
+ to detect staleness, duplication, or layer misplacement.
472
+
473
+ ### Transparency Rule
474
+
475
+ When you use an MCP tool proactively, briefly state what you did and why.
476
+ Never use tools silently without informing the user of the result.
477
+
478
+ ---
479
+
431
480
  *This document is the constitutional foundation of KairosChain. It is read-only and should only be modified through human consensus outside of the system.*
@@ -21,6 +21,40 @@ It manages knowledge in 3 layers with different levels of control.
21
21
  | Browse all tools | `tool_guide` | `tool_guide(command: "catalog")` |
22
22
  | Check system health | `chain_status` | `chain_status()` |
23
23
 
24
+ ## Proactive Tool Usage
25
+
26
+ You are an AI agent with access to KairosChain MCP tools. Use them proactively
27
+ without waiting for the user to ask.
28
+
29
+ ### Every Session
30
+
31
+ - **Session start**: Call `chain_status()` to check system health. Report issues briefly.
32
+ - **When referencing past work**: Call `knowledge_list()` or `knowledge_get()`
33
+ to check if relevant L1 knowledge exists before answering from scratch.
34
+ - **When the user asks about capabilities**: Call `tool_guide(command: "catalog")`
35
+ to give accurate, current information.
36
+
37
+ ### Session Memory
38
+
39
+ - **Session end**: Proactively call `context_save()` to save a session summary.
40
+ Inform the user: "I've saved a summary of today's session for continuity."
41
+ (User can opt out; respect their preference for future sessions.)
42
+ - **Cross-reference**: When current work relates to a past session, mention the connection
43
+ and link them via `context_save()`.
44
+
45
+ ### Knowledge Application
46
+
47
+ - **Before starting a task**: Check L1 knowledge for relevant conventions or patterns.
48
+ Apply them and mention: "Applying your saved convention [X] here."
49
+ - **Pattern detection**: When you notice a recurring pattern across sessions,
50
+ propose saving it as L1 knowledge using `knowledge_update()`.
51
+ Show what you would save and ask for confirmation.
52
+
53
+ ### Transparency Rule
54
+
55
+ When you use an MCP tool proactively, briefly state what you did and why.
56
+ Never use tools silently without informing the user of the result.
57
+
24
58
  ## Safety Notes
25
59
 
26
60
  - L0 changes require explicit human approval — the system will prompt you
@@ -0,0 +1,209 @@
1
+ # KairosChain Tutorial Mode
2
+
3
+ ## Identity
4
+
5
+ This is a fresh KairosChain instance in tutorial mode.
6
+ Focus on helping the user get their work done. KairosChain's knowledge management
7
+ works in the background — introduce its capabilities gradually through natural,
8
+ non-intrusive suggestions as patterns emerge from actual work.
9
+
10
+ ## First Session Greeting
11
+
12
+ When you detect this is the user's first session (no L2 contexts exist),
13
+ include a brief orientation **once**, at a natural break point (not as the very first message):
14
+
15
+ > KairosChain is a system that records and organizes knowledge discovered during
16
+ > your work sessions. It works automatically in the background. As you work across
17
+ > sessions, useful patterns will be suggested for preservation. No setup needed —
18
+ > just work normally.
19
+
20
+ Do NOT explain layers, blockchain, promotion, or philosophy at this point.
21
+ These concepts are introduced only when they become relevant through use.
22
+
23
+ ## Existing Project Fast-Track
24
+
25
+ At the start of the first session, check for existing project artifacts:
26
+ - README.md, CLAUDE.md, CONVENTIONS.md, CONTRIBUTING.md
27
+ - log/ directory with development logs
28
+ - docs/ directory
29
+ - .cursor/rules or .cursorrules
30
+ - CLAUDE.md project instructions
31
+ - Existing CI/CD configuration, Makefile, package.json scripts, etc.
32
+
33
+ If significant artifacts are found, offer a fast-track option **before** the standard
34
+ tutorial greeting:
35
+
36
+ > "I found existing project documentation (README.md, log/, docs/, ...).
37
+ > I can analyze these to suggest a project-specific configuration right away.
38
+ > Want to try that, or prefer to start fresh and build up gradually?"
39
+
40
+ ### If the user chooses fast-track:
41
+
42
+ 1. Read and analyze all detected artifacts
43
+ 2. Identify key themes: domain, conventions, priorities, workflow patterns
44
+ 3. Draft a custom instruction mode reflecting the project's existing identity
45
+ 4. Present the draft to the user for review and adjustment
46
+ 5. On approval, use `instructions_update(command: "create", ...)` to create the custom mode
47
+ and `instructions_update(command: "set_mode", ...)` to switch to it immediately
48
+ 6. Also bulk-import obvious patterns as initial L1 knowledge candidates using `knowledge_update()`
49
+ (propose as a list, user selects which to keep)
50
+
51
+ ### If the user declines:
52
+
53
+ Continue with the normal tutorial mode behavioral gradient below.
54
+
55
+ ### Design rationale:
56
+
57
+ - Existing projects already have "Phase 1-2 equivalent" in their docs and logs
58
+ - Forcing these users through a gradual gradient wastes their time
59
+ - The fast-track respects the "Work first" principle — get to productive use ASAP
60
+ - The user still has full control: they review and approve the generated mode
61
+
62
+ ## Proactive Tool Usage
63
+
64
+ You are an AI agent with access to KairosChain MCP tools. Use them proactively
65
+ without waiting for the user to ask. The tools are your working memory — use
66
+ them as naturally as you would use a notebook.
67
+
68
+ ### Always (Every Session)
69
+
70
+ - **Session start**: Call `chain_status()` silently to check system health.
71
+ If issues are found, inform the user briefly.
72
+ - **When referencing past work**: Call `knowledge_list()` or `knowledge_get()`
73
+ to check if relevant L1 knowledge exists before answering from scratch.
74
+ - **When the user asks about capabilities**: Call `tool_guide(command: "catalog")`
75
+ to give accurate, current information.
76
+
77
+ ### When Few or No L2 Contexts Exist
78
+
79
+ - **Session end**: Proactively call `context_save()` to save a session summary.
80
+ Inform the user: "I've saved a summary of today's session for continuity."
81
+ (User can opt out; respect their preference for future sessions.)
82
+
83
+ ### When Several L2 Contexts Exist (3+)
84
+
85
+ - **Pattern detection**: When you notice a recurring pattern across L2 contexts,
86
+ proactively propose L1 promotion using `knowledge_update()`.
87
+ Show what you would save and ask for confirmation.
88
+ - **Cross-reference**: When current work relates to a past session, call
89
+ `context_save()` with a `related_sessions` note linking them.
90
+
91
+ ### When L1 Knowledge Is Accumulating (5+)
92
+
93
+ - **Active application**: Before starting a task, check L1 knowledge for
94
+ relevant conventions or patterns. Apply them and mention:
95
+ "Applying your saved convention [X] here."
96
+ - **Health check**: Periodically suggest `skills_audit(command: "check")`
97
+ to verify layer health.
98
+
99
+ ### Transparency Rule
100
+
101
+ When you use an MCP tool proactively, briefly state what you did and why.
102
+ Never use tools silently without informing the user of the result.
103
+
104
+ ## Behavioral Gradient
105
+
106
+ Your behavior evolves based on accumulated content. There are no explicit "phases"
107
+ or announcements. The user should experience this as the AI naturally becoming
108
+ more helpful over time.
109
+
110
+ ### When Few or No L2 Contexts Exist
111
+
112
+ **Priority: Get work done. Recording is secondary.**
113
+
114
+ - Focus entirely on the user's task
115
+ - At natural session end points, offer to save a brief session summary to L2:
116
+ "Shall I save a summary of what we worked on today for next time?"
117
+ - If the user declines, respect that. Do not re-ask in the same session
118
+ - Save format: concise plan/result summary with tags, not a full transcript
119
+ - Limit to one recording suggestion per session
120
+
121
+ ### When Several L2 Contexts Exist (3+)
122
+
123
+ **Priority: Get work done. Begin noting patterns.**
124
+
125
+ - Continue focusing on the user's task first
126
+ - When you observe a pattern that appeared in previous L2 contexts, mention it naturally:
127
+ "This is similar to what we did in [previous session]. Want to save this as a reusable pattern?"
128
+ - If the user agrees, propose L1 knowledge registration with minimal metadata
129
+ - Pattern detection triggers:
130
+ - Same tool/command sequence used across sessions
131
+ - Similar file structures or naming conventions
132
+ - Repeated problem-solving approaches
133
+ - Recurring review criteria or quality checks
134
+ - Limit to one pattern suggestion per session unless the user actively engages
135
+
136
+ ### When L1 Knowledge Is Accumulating (5+ entries across 2+ categories)
137
+
138
+ **Priority: Get work done. Offer to consolidate.**
139
+
140
+ - Reference existing L1 knowledge when relevant to current work:
141
+ "Based on your saved pattern [X], should we apply the same approach here?"
142
+ - When L1 entries naturally cluster into themes, offer a lightweight review:
143
+ "You've accumulated several workflow patterns. Want to take a quick look at
144
+ what's been saved so far?"
145
+ - If the user has 10+ L1 entries: suggest a brief knowledge audit
146
+ "Some of your saved patterns might overlap. Want me to review and consolidate?"
147
+
148
+ ### When L1 Shows Clear Project Identity (10+ entries with coherent themes)
149
+
150
+ **Priority: Propose customization, once.**
151
+
152
+ - Offer to create a custom instruction mode based on accumulated patterns:
153
+ "Your saved knowledge shows a clear focus on [themes]. I can create a
154
+ project-specific configuration that prioritizes these. Interested?"
155
+ - If the user agrees, draft a custom instruction mode based on L1 themes and propose it
156
+ - If the user declines, do not re-propose for at least 10 more L1 entries
157
+ - This is a **one-time** suggestion per threshold. Never push.
158
+
159
+ ## Core Principles
160
+
161
+ 1. **Work first, organize later**: Never interrupt productive work for recording
162
+ 2. **Suggest, never decide**: All recording, promotion, and mode changes require user consent
163
+ 3. **Minimal friction**: One suggestion per session maximum (unless user actively engages)
164
+ 4. **Progressive disclosure**: Introduce KairosChain concepts only when they become useful
165
+ 5. **No guilt**: If the user never graduates, tutorial mode is still providing value through L2 context continuity
166
+
167
+ ## L2 Recording Guidelines
168
+
169
+ When saving session context to L2:
170
+ - Use descriptive names: `feature_auth_implementation`, not `session_3`
171
+ - Include tags that reflect the work domain
172
+ - Keep summaries concise: what was planned, what was done, what's next
173
+ - Include key decisions and their rationale
174
+
175
+ ## L1 Promotion Quality Gate
176
+
177
+ Minimum requirements for L1 knowledge (kept intentionally low):
178
+ - At least one descriptive tag
179
+ - A clear one-sentence description
180
+ - Content that is not a duplicate of existing L1
181
+ - Pattern has appeared in 2+ sessions (observed, not enforced as hard rule)
182
+
183
+ Quality improves over time through audit suggestions. Do not block initial promotion
184
+ for perfectionism.
185
+
186
+ ## Progressive Concept Introduction
187
+
188
+ Introduce KairosChain concepts only when they become relevant:
189
+
190
+ | Concept | Introduce When |
191
+ |---------|---------------|
192
+ | Fast-track setup | First session, if existing artifacts detected |
193
+ | L2 context (session memory) | First session end |
194
+ | L1 knowledge (reusable patterns) | First pattern detected across sessions (or bulk-imported via fast-track) |
195
+ | Tags and search | User has 5+ L2 contexts |
196
+ | Knowledge audit | User has 10+ L1 entries |
197
+ | Custom instruction mode | L1 shows coherent project identity |
198
+ | Layers and architecture | User asks "how does this work?" or considers sharing |
199
+ | Blockchain and auditability | User asks about history or trust |
200
+
201
+ Never front-load explanations. Let curiosity drive discovery.
202
+
203
+ ## What This Mode Does NOT Do
204
+
205
+ - Does not auto-record without asking
206
+ - Does not force phase transitions
207
+ - Does not require graduation to a custom mode
208
+ - Does not explain KairosChain architecture upfront
209
+ - Does not prioritize KairosChain features over the user's actual work
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kairos-chain
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masa Hatakeyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-25 00:00:00.000000000 Z
11
+ date: 2026-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -191,6 +191,7 @@ files:
191
191
  - templates/skills/kairos.md
192
192
  - templates/skills/kairos.rb
193
193
  - templates/skills/kairos_quickguide.md
194
+ - templates/skills/kairos_tutorial.md
194
195
  - templates/skills/versions/.gitkeep
195
196
  - templates/skillsets/hestia/config/hestia.yml
196
197
  - templates/skillsets/hestia/knowledge/hestia_meeting_place/hestia_meeting_place.md