Add example configurations, tasks, and skills for Älyverkko CLI
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 1 Dec 2025 01:11:34 +0000 (03:11 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 1 Dec 2025 01:11:34 +0000 (03:11 +0200)
alyverkko-cli.yaml [deleted file]
doc/examples/alyverkko-cli.yaml [new file with mode: 0644]
doc/examples/skills/default.yaml [new file with mode: 0644]
doc/examples/skills/summary.yaml [new file with mode: 0644]
doc/examples/tasks/DONE: personality test.org [new file with mode: 0644]
doc/examples/tasks/personality test.org [new file with mode: 0644]
doc/index.org
tools/update web site

diff --git a/alyverkko-cli.yaml b/alyverkko-cli.yaml
deleted file mode 100644 (file)
index f931d6e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-task_directory: "/home/user/AI/tasks"
-models_directory: "/home/user/AI/models"
-default_temperature: 0.7
-llama_cpp_dir_path: "/home/user/AI/llama.cpp/"
-batch_thread_count: 10
-thread_count: 6
-skills_directory: "/home/user/.config/alyverkko-cli/skills"
-models:
-  - alias: "default"
-    filesystem_path: "WizardLM-2-8x22B.Q5_K_M-00001-of-00005.gguf"
-    context_size_tokens: 64000
-    end_of_text_marker: null
-  - alias: "mistral"
-    filesystem_path: "Mistral-Large-Instruct-2407.Q8_0.gguf"
-    context_size_tokens: 32768
-    end_of_text_marker: null
diff --git a/doc/examples/alyverkko-cli.yaml b/doc/examples/alyverkko-cli.yaml
new file mode 100644 (file)
index 0000000..f931d6e
--- /dev/null
@@ -0,0 +1,16 @@
+task_directory: "/home/user/AI/tasks"
+models_directory: "/home/user/AI/models"
+default_temperature: 0.7
+llama_cpp_dir_path: "/home/user/AI/llama.cpp/"
+batch_thread_count: 10
+thread_count: 6
+skills_directory: "/home/user/.config/alyverkko-cli/skills"
+models:
+  - alias: "default"
+    filesystem_path: "WizardLM-2-8x22B.Q5_K_M-00001-of-00005.gguf"
+    context_size_tokens: 64000
+    end_of_text_marker: null
+  - alias: "mistral"
+    filesystem_path: "Mistral-Large-Instruct-2407.Q8_0.gguf"
+    context_size_tokens: 32768
+    end_of_text_marker: null
diff --git a/doc/examples/skills/default.yaml b/doc/examples/skills/default.yaml
new file mode 100644 (file)
index 0000000..452b7f7
--- /dev/null
@@ -0,0 +1,12 @@
+prompt: |
+  <|im_start|>system
+  User will provide you with task that needs to be solved along with
+  existing relevant information. You must provide well reasoned solution.
+  <|im_end|>
+  <|im_start|>user
+  /think Solve following problem:
+
+  <TASK-FILE>
+
+  <|im_end|>
+  <|im_start|>assistant
diff --git a/doc/examples/skills/summary.yaml b/doc/examples/skills/summary.yaml
new file mode 100644 (file)
index 0000000..6530a26
--- /dev/null
@@ -0,0 +1,18 @@
+prompt: |
+  <|im_start|>system
+
+  User is curious about the world and wants to understand how it
+  works. User is finding various news, blogs and stories on the internet
+  that look promising but user does not have time to read them in depth.
+  Your task is to analyze user provided story and write the summary that
+  preserves the most valuable events, facts, conclusions or take-aways
+  from it.
+
+  <|im_end|>
+  <|im_start|>user
+  /think Summarize following:
+
+  <TASK-FILE>
+
+  <|im_end|>
+  <|im_start|>assistant
diff --git a/doc/examples/tasks/DONE: personality test.org b/doc/examples/tasks/DONE: personality test.org
new file mode 100644 (file)
index 0000000..03981df
--- /dev/null
@@ -0,0 +1,42 @@
+DONE: skill=default model=default duration=2m
+* USER:
+
+If numbers had personalities,
+what kind of personality might the number 'zero' have?
+
+* ASSISTANT:
+
+1. Personality traits based on mathematical properties:
+   - Neutral and unchanging unless influenced
+   - Control over magnitude through multiplication
+   - Neither positive/negative (impartial)
+   - Foundational yet seemingly insignificant at times
+
+2. Symbolism and metaphors:
+   - Balance point between opposites
+   - Container for infinite possibilities (potential)
+   - Cycle of beginning/endpoints
+   - Quiet supporter behind the scenes
+
+3. Social dynamics:
+   - Values community/cooperation
+   - May feel undervalued but persists regardless
+   - Adaptable depending on situation/placement
+
+4. Philosophical/spiritual parallels:
+   - Emptiness equates to purity/clean slate
+   - Potential without action = dormant power
+
+5. Gender and self-identity:
+   - Ambiguous/genderless
+
+6. Emotional characteristics:
+   - Patient; allows time for events/actions to unfold
+   - Resilient when facing neglect or misunderstanding
+   - Persistent in fulfilling its purpose
+
+7. Behavioral tendencies:
+   - Fosters growth indirectly rather than directly contributing
+     measurable output
+   - Encourages exploration beyond limits via abstract reasoning
+     innovations
diff --git a/doc/examples/tasks/personality test.org b/doc/examples/tasks/personality test.org
new file mode 100644 (file)
index 0000000..bacf84c
--- /dev/null
@@ -0,0 +1,4 @@
+TOCOMPUTE: skill=default model=default priority=5
+
+If numbers had personalities,
+what kind of personality might the number 'zero' have?
index 8e8338b..00c33ec 100644 (file)
@@ -72,10 +72,11 @@ product.
 
 *Usage Procedure:*
 1. User collects customer reviews in plain text format within the
-   configured mail directory. Lets say, about 150 kilobytes of reviews
-   per input file (this is dictated by AI model available context
-   size).
-2. Each review file is prefixed with "TOCOMPUTE:".
+   configured tasks directory. Lets say, about 150 kilobytes of
+   reviews per input file (this is dictated by AI model available
+   context size).
+2. Each review file starts with special "TOCOMPUTE:". (See: [[id:f2fd232d-5d2b-42fa-83db-76ab015d4df9][Task file
+   format]])
 3. The Älyverkko CLI application processes these files, generating
    sentiment analysis results and feature extraction insights.
 4. Results are appended to the original files in org-mode syntax,
@@ -93,11 +94,10 @@ specifications provided by the developer.
 
 *Usage Procedure:*
 
-1. Developer writes specifications in a text file within the mail
-   directory, prefixed with "TOCOMPUTE:". Text file also contains
-   relevant parts of the program source code and
-   documentation. Älyverkko CLI *joinfiles* subcommand can be used to
-   facilitate such text file preparation.
+1. Developer writes specifications in a text file within the tasks
+   directory. Text file also contains relevant parts of the program
+   source code and documentation. Älyverkko CLI [[id:be907a1f-e347-48d9-ab0c-6a556912dc49]["joinfiles" command]]
+   can be used to facilitate such text file preparation.
 
 2. The Älyverkko CLI application processes this file and generates the
    corresponding code snippets. The generated code is appended to the
@@ -106,8 +106,8 @@ specifications provided by the developer.
 3. Developer can review proposed changes and then integrate them back
    into original program source code.
 
-Note: Most of the [[https://www3.svjatoslav.eu/projects/alyverkko-cli/][Älyverkko CLI]] program code is written in such a way
-by AI. [[https://www2.svjatoslav.eu/gitweb/?p=alyverkko-cli.git;a=blob;f=tools/implement+idea;h=02b0ceb260693a6c9733f221e52a0e6c5fce0a36;hb=HEAD][This script]] is used to facilitate the process.
+Note: Large part of the [[https://www3.svjatoslav.eu/projects/alyverkko-cli/][Älyverkko CLI]] program code is written in such
+a way by AI.
 
 *** Domain: Content Creation
 :PROPERTIES:
@@ -116,16 +116,16 @@ by AI. [[https://www2.svjatoslav.eu/gitweb/?p=alyverkko-cli.git;a=blob;f=tools/i
 
 *Problem Statement:*
 
-Draft an outline for a book on science fiction and improve its plot.
+Draft an outline for a book on science fiction or improve its plot.
 
 *Usage Procedure:*
 
 1. The book author writes a brief describing the outline of the plot
    and his book main idea for the novel.
 
-2. *Älyverkko CLI* processes this description and generates an outline
-   with suggested headings and suggests possible improvements to the
-   plot.
+2. *Älyverkko CLI* processes this description and generates more
+   detailed outline with suggested headings and suggests possible
+   improvements to the plot.
 
 Here is [[https://www.svjatoslav.eu/writing/Whispers%20in%20the%20Stream%20of%20Time.html][example sci-fi book]] that was written with the help of
 *Älyverkko CLI*.
@@ -177,11 +177,11 @@ our AI task processor.
 
 *** 2. Building llama.cpp (Your AI Engine)
 
-- *What*: Download and compile the llama.cpp project from GitHub.
+- *What*: Download and compile the [[https://github.com/ggml-org/llama.cpp][llama.cpp]] project from GitHub.
 - *Why*: This is the actual "brain" that runs large language models on
-  *your CPU*. We build from source (rather than using prebuilt
+  *your CPU*. We build from source (rather than using rebuilt
   binaries) so it can optimize for /your specific CPU/ - squeezing out
-  *maximum performance from your hardware.
+  maximum performance from your hardware.
 
 *** 3. Adding AI Models (The Brains)
 - *What*: Download GGUF format model files (typically 4-30GB each)
@@ -218,13 +218,13 @@ reasonable defaults - you're not starting from scratch.
   for different tasks.
 - *Why*: So you don't have to rewrite instructions every time ("be a
   coding assistant" vs "be a writing editor").
-- *Don't worry*: Sample skills come pre-configured - you can modify
-  them gradually.
+- *Don't worry*: Start with sample skills ([[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/default.yaml][default.yaml]],
+  [[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/summary.yaml][summary.yaml]]) - you can modify them gradually.
 - *Key insight*: Skills let you create specialized AI personas without
   changing models.
 
 #+begin_quote
-Example: Your =writer.yaml= skill might instruct the AI to "always
+Idea: Your =writer.yaml= skill might instruct the AI to "always
 provide well-reasoned responses in academic tone"
 #+end_quote
 
@@ -270,7 +270,7 @@ you get:
 
 You fill find that after the first few processed tasks, the initial
 setup effort feels worthwhile. You're not just getting another
-chatbot - you're building a personal AI workstation tailored to your
+chat bot - you're building a personal AI workstation tailored to your
 specific needs. The initial investment pays dividends every time you
 need serious AI power without compromise.
 
@@ -501,6 +501,8 @@ the actual user prompt during execution.
     <|im_start|>assistant
 #+end_src
 
+See more example skills: [[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/default.yaml][default.yaml]], [[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/summary.yaml][summary.yaml]]
+
 ** Starting process daemon
 
 Älyverkko CLI keeps continuously listening for and processing tasks
@@ -552,6 +554,9 @@ facilities:
 
 * Usage
 ** Task file format
+:PROPERTIES:
+:ID:       f2fd232d-5d2b-42fa-83db-76ab015d4df9
+:END:
 
 Task files follow a specific structure that begins with a header line:
 
@@ -560,6 +565,14 @@ TOCOMPUTE: [parameters]
 [User prompt content]
 #+end_example
 
+[[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/tasks/personality%20test.org][Example complete task file]]:
+#+begin_example
+TOCOMPUTE: skill=default model=default priority=5
+
+If numbers had personalities,
+what kind of personality might the number 'zero' have?
+#+end_example
+
 *** Task File Header Format
 
 The first line *must* begin with exactly =TOCOMPUTE:= followed by
@@ -584,6 +597,54 @@ After AI processing completes, a new file is created with:
 : DONE: skill=writer model=default duration=5m
 : ...
 
+[[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/tasks/DONE:%20personality%20test.org][Example DONE file]]:
+
+#+begin_example
+  DONE: skill=default model=default duration=2m
+  ,* USER:
+
+  If numbers had personalities,
+  what kind of personality might the number 'zero' have?
+
+  ,* ASSISTANT:
+
+  1. Personality traits based on mathematical properties:
+     - Neutral and unchanging unless influenced
+     - Control over magnitude through multiplication
+     - Neither positive/negative (impartial)
+     - Foundational yet seemingly insignificant at times
+
+  2. Symbolism and metaphors:
+     - Balance point between opposites
+     - Container for infinite possibilities (potential)
+     - Cycle of beginning/endpoints
+     - Quiet supporter behind the scenes
+
+  3. Social dynamics:
+     - Values community/cooperation
+     - May feel undervalued but persists regardless
+     - Adaptable depending on situation/placement
+
+  4. Philosophical/spiritual parallels:
+     - Emptiness equates to purity/clean slate
+     - Potential without action = dormant power
+
+  5. Gender and self-identity:
+     - Ambiguous/genderless
+
+  6. Emotional characteristics:
+     - Patient; allows time for events/actions to unfold
+     - Resilient when facing neglect or misunderstanding
+     - Persistent in fulfilling its purpose
+
+  7. Behavioral tendencies:
+     - Fosters growth indirectly rather than directly contributing
+       measurable output
+     - Encourages exploration beyond limits via abstract reasoning
+       innovations
+#+end_example
+
+
 ** Task preparation
 :PROPERTIES:
 :ID:       4b7900e4-77c1-45e7-9c54-772d0d3892ea
@@ -598,6 +659,9 @@ CLI mail directory using normal text editor. Once AI assignment is
 ready for processing, you should [[id:883d6e7c-60e0-422b-8c00-5cdc9dfec20d][initiate AI processing]] on that file.
 
 *** "joinfiles" command
+:PROPERTIES:
+:ID:       be907a1f-e347-48d9-ab0c-6a556912dc49
+:END:
 *Note:* See also alternative solution with similar goal: [[https://github.com/aerugo/prelude][prelude]].
 
 The *joinfiles* command is a utility for aggregating the contents of
@@ -843,6 +907,12 @@ the top of the current buffer."
 
 * Feature ideas
 
+- Document system requirements (minimum RAM, storage, OS)
+
+- Make glossary of concepts. (Task, Task directory, Skill, Model, etc)
+
+- Recommend some concrete AI models.
+
 - In task directory ignore binary files, use joinfiles command as
   example how to ignore binary files. Perhaps extract plain text file
   detection into some utility class.
index 5d3b485..ec23ca9 100755 (executable)
@@ -4,6 +4,7 @@ cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -e "'$0' T"; exit; fi;
 cd ..
 
 # Build the project jar file and the apidocs.
+export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64/
 mvn clean package
 
 # Export org to html using emacs in batch mode