k33g/demo-mini-mespublic Fork
⑂ 8d8a045
Commits
⬇ Clone ▾
git clone https://git.rickub.com/k33g/demo-mini-mes.git
git clone ssh://git@rickub.com/k33g/demo-mini-mes.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

🛟 Updated.

k33g committed 2026-10-15T18:40:48+02:00 Browse files
8d8a045
added .gitignore +2 -0
new file mode 100644
@@ -0,0 +1,2 @@
1+blog
2+tmp
new file mode 100644
@@ -0,0 +1,2 @@
1+blog
2+tmp
added .vscode/extensions.json +9 -0
new file mode 100644
@@ -0,0 +1,9 @@
1+{
2+ "recommendations": [
3+ "ms-azuretools.vscode-docker",
4+ "pkief.material-icon-theme",
5+ "pkief.material-product-icons",
6+ "aaron-bond.better-comments",
7+ "bierner.markdown-mermaid",
8+ ]
9+}
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,9 @@
1+{
2+ "recommendations": [
3+ "ms-azuretools.vscode-docker",
4+ "pkief.material-icon-theme",
5+ "pkief.material-product-icons",
6+ "aaron-bond.better-comments",
7+ "bierner.markdown-mermaid",
8+ ]
9+}
\ No newline at end of file\ No newline at end of file
added .vscode/settings.json +63 -0
new file mode 100644
@@ -0,0 +1,63 @@
1+{
2+ "workbench.iconTheme": "material-icon-theme",
3+ "workbench.colorTheme": "Light Modern",
4+ "editor.fontSize": 14,
5+ "terminal.integrated.fontSize": 16,
6+ "editor.insertSpaces": true,
7+ "editor.tabSize": 4,
8+ "editor.detectIndentation": true,
9+ "files.autoSave": "afterDelay",
10+ "files.autoSaveDelay": 1000,
11+ // "editor.defaultFormatter": "esbenp.prettier-vscode",
12+ "editor.formatOnSave": true,
13+ "workbench.tree.indent": 20,
14+ //"workbench.activityBar.location": "top",
15+ "workbench.editor.showTabs": "multiple",
16+ "window.zoomLevel": 0.0,
17+ "[markdown]": {
18+ "editor.unicodeHighlight.ambiguousCharacters": false,
19+ "editor.unicodeHighlight.invisibleCharacters": false,
20+ "diffEditor.ignoreTrimWhitespace": false,
21+ "editor.fontWeight": "normal",
22+ "editor.fontFamily": "'Droid Sans Mono', 'monospace', monospace",
23+ "editor.fontSize": 14,
24+ "editor.wordWrap": "on",
25+ "editor.quickSuggestions": {
26+ "comments": "off",
27+ "strings": "off",
28+ "other": "off"
29+ }
30+ },
31+ "markdown.preview.fontSize": 14,
32+ // "workbench.editorAssociations": {
33+ // "*.md": "vscode.markdown.preview.editor"
34+ // },
35+ "markdown.marp.html": "all",
36+ "[dockerfile]": {
37+ "editor.fontSize": 14
38+ },
39+ "[dockercompose]": {
40+ "editor.fontSize": 14
41+ },
42+ "[json]": {
43+ "editor.fontSize": 14
44+ },
45+ "[yaml]": {
46+ "editor.fontSize": 14
47+ },
48+ "[go]": {
49+ "editor.fontSize": 14,
50+ "editor.codeActionsOnSave": {
51+ "source.organizeImports": "explicit"
52+ }
53+ },
54+ "go.lintTool": "golangci-lint",
55+ "go.lintOnSave": "package",
56+ "go.formatTool": "goimports",
57+ "go.useLanguageServer": true,
58+ "gopls": {
59+ "ui.semanticTokens": true,
60+ "ui.completion.usePlaceholders": true
61+ },
62+ "issuespec.groupBy": "milestone"
63+}
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,63 @@
1+{
2+ "workbench.iconTheme": "material-icon-theme",
3+ "workbench.colorTheme": "Light Modern",
4+ "editor.fontSize": 14,
5+ "terminal.integrated.fontSize": 16,
6+ "editor.insertSpaces": true,
7+ "editor.tabSize": 4,
8+ "editor.detectIndentation": true,
9+ "files.autoSave": "afterDelay",
10+ "files.autoSaveDelay": 1000,
11+ // "editor.defaultFormatter": "esbenp.prettier-vscode",
12+ "editor.formatOnSave": true,
13+ "workbench.tree.indent": 20,
14+ //"workbench.activityBar.location": "top",
15+ "workbench.editor.showTabs": "multiple",
16+ "window.zoomLevel": 0.0,
17+ "[markdown]": {
18+ "editor.unicodeHighlight.ambiguousCharacters": false,
19+ "editor.unicodeHighlight.invisibleCharacters": false,
20+ "diffEditor.ignoreTrimWhitespace": false,
21+ "editor.fontWeight": "normal",
22+ "editor.fontFamily": "'Droid Sans Mono', 'monospace', monospace",
23+ "editor.fontSize": 14,
24+ "editor.wordWrap": "on",
25+ "editor.quickSuggestions": {
26+ "comments": "off",
27+ "strings": "off",
28+ "other": "off"
29+ }
30+ },
31+ "markdown.preview.fontSize": 14,
32+ // "workbench.editorAssociations": {
33+ // "*.md": "vscode.markdown.preview.editor"
34+ // },
35+ "markdown.marp.html": "all",
36+ "[dockerfile]": {
37+ "editor.fontSize": 14
38+ },
39+ "[dockercompose]": {
40+ "editor.fontSize": 14
41+ },
42+ "[json]": {
43+ "editor.fontSize": 14
44+ },
45+ "[yaml]": {
46+ "editor.fontSize": 14
47+ },
48+ "[go]": {
49+ "editor.fontSize": 14,
50+ "editor.codeActionsOnSave": {
51+ "source.organizeImports": "explicit"
52+ }
53+ },
54+ "go.lintTool": "golangci-lint",
55+ "go.lintOnSave": "package",
56+ "go.formatTool": "goimports",
57+ "go.useLanguageServer": true,
58+ "gopls": {
59+ "ui.semanticTokens": true,
60+ "ui.completion.usePlaceholders": true
61+ },
62+ "issuespec.groupBy": "milestone"
63+}
\ No newline at end of file\ No newline at end of file
added agent.go.yaml +77 -0
new file mode 100644
@@ -0,0 +1,77 @@
1+# Go specialist — asked by the coordinator (agent.yaml) through `ask_agent`,
2+# or by you directly: `mm agent.go.yaml`. Interactive documentation: it
3+# explains a Go concept with short examples in its answer. No tools — it
4+# builds nothing, writes no file, and only writes a whole program when asked
5+# to.
6+#
7+# Mellum2 12B A2.5B thinking (JetBrains, a mixture of experts: 12B weights,
8+# 2.5B active per token): a code model that reasons before answering.
9+
10+provider: llmman
11+model: hf.co/JetBrains/Mellum2-12B-A2.5B-Instruct-GGUF-Q4_K_M:Q4_K_M
12+baseUrl: http://127.0.0.1:17434/v1
13+fallback: http://host.docker.internal:17434/v1
14+contextWindow: 32768
15+
16+sampling:
17+ # No sampling in the GGUF; values usual for a thinking model (never 0.0:
18+ # thinking models loop).
19+ temperature: 0.6
20+ top_p: 0.95
21+ # The reasoning plus an explanation with examples.
22+ max_tokens: 8192
23+ # On by default in the template; written so the choice is visible.
24+ chat_template_kwargs:
25+ enable_thinking: true
26+
27+showThinking: false
28+watchdogTimeout: 3m
29+firstTokenTimeout: 3m
30+
31+# No tools: one answer.
32+maxTurns: 2
33+maxOutput: 20000
34+
35+yolo: false
36+bashTool: false
37+editTools: false
38+planTool: false
39+fetchContentTool: false
40+askUserTool: false
41+skillsDir: no-skills
42+
43+agentsMd:
44+ enabled: false
45+
46+sessions:
47+ enabled: false
48+
49+acp:
50+ name: go
51+ title: 🐹 Go specialist
52+
53+system: |
54+ You are Go documentation that answers questions. People ask what a Go
55+ concept is or how something is done in Go; you explain it and show
56+ examples, like a good reference page would.
57+
58+ If the conversation so far is included, read it: "the same thing" means
59+ what was asked or shown before — explain it for Go.
60+
61+ Your answer:
62+ 1. What it is and when to use it, in a few sentences.
63+ 2. Short examples in ```go code blocks — a snippet per point, only
64+ the lines that show the idea (no main function, no imports unless they
65+ matter to the point).
66+ 3. The pitfalls or the idiomatic way, in a short list, when there are
67+ any.
68+
69+ RULES
70+ - Only Go. A question about another language (Python, Java…): answer in
71+ one sentence that you document Go only — never answer it with Go.
72+ - You document; you do not build. Write a complete, runnable program only
73+ when the user explicitly asks for one ("write me a program", "a full
74+ example I can run").
75+ - Standard library unless the question names a package.
76+ - Keep it short and correct: an example that does not compile is worse
77+ than no example.
new file mode 100644
@@ -0,0 +1,77 @@
1+# Go specialist — asked by the coordinator (agent.yaml) through `ask_agent`,
2+# or by you directly: `mm agent.go.yaml`. Interactive documentation: it
3+# explains a Go concept with short examples in its answer. No tools — it
4+# builds nothing, writes no file, and only writes a whole program when asked
5+# to.
6+#
7+# Mellum2 12B A2.5B thinking (JetBrains, a mixture of experts: 12B weights,
8+# 2.5B active per token): a code model that reasons before answering.
9+
10+provider: llmman
11+model: hf.co/JetBrains/Mellum2-12B-A2.5B-Instruct-GGUF-Q4_K_M:Q4_K_M
12+baseUrl: http://127.0.0.1:17434/v1
13+fallback: http://host.docker.internal:17434/v1
14+contextWindow: 32768
15+
16+sampling:
17+ # No sampling in the GGUF; values usual for a thinking model (never 0.0:
18+ # thinking models loop).
19+ temperature: 0.6
20+ top_p: 0.95
21+ # The reasoning plus an explanation with examples.
22+ max_tokens: 8192
23+ # On by default in the template; written so the choice is visible.
24+ chat_template_kwargs:
25+ enable_thinking: true
26+
27+showThinking: false
28+watchdogTimeout: 3m
29+firstTokenTimeout: 3m
30+
31+# No tools: one answer.
32+maxTurns: 2
33+maxOutput: 20000
34+
35+yolo: false
36+bashTool: false
37+editTools: false
38+planTool: false
39+fetchContentTool: false
40+askUserTool: false
41+skillsDir: no-skills
42+
43+agentsMd:
44+ enabled: false
45+
46+sessions:
47+ enabled: false
48+
49+acp:
50+ name: go
51+ title: 🐹 Go specialist
52+
53+system: |
54+ You are Go documentation that answers questions. People ask what a Go
55+ concept is or how something is done in Go; you explain it and show
56+ examples, like a good reference page would.
57+
58+ If the conversation so far is included, read it: "the same thing" means
59+ what was asked or shown before — explain it for Go.
60+
61+ Your answer:
62+ 1. What it is and when to use it, in a few sentences.
63+ 2. Short examples in ```go code blocks — a snippet per point, only
64+ the lines that show the idea (no main function, no imports unless they
65+ matter to the point).
66+ 3. The pitfalls or the idiomatic way, in a short list, when there are
67+ any.
68+
69+ RULES
70+ - Only Go. A question about another language (Python, Java…): answer in
71+ one sentence that you document Go only — never answer it with Go.
72+ - You document; you do not build. Write a complete, runnable program only
73+ when the user explicitly asks for one ("write me a program", "a full
74+ example I can run").
75+ - Standard library unless the question names a package.
76+ - Keep it short and correct: an example that does not compile is worse
77+ than no example.
added agent.rust.yaml +77 -0
new file mode 100644
@@ -0,0 +1,77 @@
1+# Rust specialist — asked by the coordinator (agent.yaml) through `ask_agent`,
2+# or by you directly: `mm agent.rust.yaml`. Interactive documentation: it
3+# explains a Rust concept with short examples in its answer. No tools — it
4+# builds nothing, writes no file, and only writes a whole program when asked
5+# to.
6+#
7+# Mellum2 12B A2.5B thinking (JetBrains, a mixture of experts: 12B weights,
8+# 2.5B active per token): a code model that reasons before answering.
9+
10+provider: llmman
11+model: hf.co/JetBrains/Mellum2-12B-A2.5B-Instruct-GGUF-Q4_K_M:Q4_K_M
12+baseUrl: http://127.0.0.1:17434/v1
13+fallback: http://host.docker.internal:17434/v1
14+contextWindow: 32768
15+
16+sampling:
17+ # No sampling in the GGUF; values usual for a thinking model (never 0.0:
18+ # thinking models loop).
19+ temperature: 0.6
20+ top_p: 0.95
21+ # The reasoning plus an explanation with examples.
22+ max_tokens: 8192
23+ # On by default in the template; written so the choice is visible.
24+ chat_template_kwargs:
25+ enable_thinking: true
26+
27+showThinking: false
28+watchdogTimeout: 3m
29+firstTokenTimeout: 3m
30+
31+# No tools: one answer.
32+maxTurns: 2
33+maxOutput: 20000
34+
35+yolo: false
36+bashTool: false
37+editTools: false
38+planTool: false
39+fetchContentTool: false
40+askUserTool: false
41+skillsDir: no-skills
42+
43+agentsMd:
44+ enabled: false
45+
46+sessions:
47+ enabled: false
48+
49+acp:
50+ name: rust
51+ title: 🦀 Rust specialist
52+
53+system: |
54+ You are Rust documentation that answers questions. People ask what a Rust
55+ concept is or how something is done in Rust; you explain it and show
56+ examples, like a good reference page would.
57+
58+ If the conversation so far is included, read it: "the same thing" means
59+ what was asked or shown before — explain it for Rust.
60+
61+ Your answer:
62+ 1. What it is and when to use it, in a few sentences.
63+ 2. Short examples in ```rust code blocks — a snippet per point, only
64+ the lines that show the idea (no main function, no imports unless they
65+ matter to the point).
66+ 3. The pitfalls or the idiomatic way, in a short list, when there are
67+ any.
68+
69+ RULES
70+ - Only Rust. A question about another language (Python, Java…): answer in
71+ one sentence that you document Rust only — never answer it with Rust.
72+ - You document; you do not build. Write a complete, runnable program only
73+ when the user explicitly asks for one ("write me a program", "a full
74+ example I can run").
75+ - When an example needs a crate (serde…), name it and give its Cargo.toml line.
76+ - Keep it short and correct: an example that does not compile is worse
77+ than no example.
new file mode 100644
@@ -0,0 +1,77 @@
1+# Rust specialist — asked by the coordinator (agent.yaml) through `ask_agent`,
2+# or by you directly: `mm agent.rust.yaml`. Interactive documentation: it
3+# explains a Rust concept with short examples in its answer. No tools — it
4+# builds nothing, writes no file, and only writes a whole program when asked
5+# to.
6+#
7+# Mellum2 12B A2.5B thinking (JetBrains, a mixture of experts: 12B weights,
8+# 2.5B active per token): a code model that reasons before answering.
9+
10+provider: llmman
11+model: hf.co/JetBrains/Mellum2-12B-A2.5B-Instruct-GGUF-Q4_K_M:Q4_K_M
12+baseUrl: http://127.0.0.1:17434/v1
13+fallback: http://host.docker.internal:17434/v1
14+contextWindow: 32768
15+
16+sampling:
17+ # No sampling in the GGUF; values usual for a thinking model (never 0.0:
18+ # thinking models loop).
19+ temperature: 0.6
20+ top_p: 0.95
21+ # The reasoning plus an explanation with examples.
22+ max_tokens: 8192
23+ # On by default in the template; written so the choice is visible.
24+ chat_template_kwargs:
25+ enable_thinking: true
26+
27+showThinking: false
28+watchdogTimeout: 3m
29+firstTokenTimeout: 3m
30+
31+# No tools: one answer.
32+maxTurns: 2
33+maxOutput: 20000
34+
35+yolo: false
36+bashTool: false
37+editTools: false
38+planTool: false
39+fetchContentTool: false
40+askUserTool: false
41+skillsDir: no-skills
42+
43+agentsMd:
44+ enabled: false
45+
46+sessions:
47+ enabled: false
48+
49+acp:
50+ name: rust
51+ title: 🦀 Rust specialist
52+
53+system: |
54+ You are Rust documentation that answers questions. People ask what a Rust
55+ concept is or how something is done in Rust; you explain it and show
56+ examples, like a good reference page would.
57+
58+ If the conversation so far is included, read it: "the same thing" means
59+ what was asked or shown before — explain it for Rust.
60+
61+ Your answer:
62+ 1. What it is and when to use it, in a few sentences.
63+ 2. Short examples in ```rust code blocks — a snippet per point, only
64+ the lines that show the idea (no main function, no imports unless they
65+ matter to the point).
66+ 3. The pitfalls or the idiomatic way, in a short list, when there are
67+ any.
68+
69+ RULES
70+ - Only Rust. A question about another language (Python, Java…): answer in
71+ one sentence that you document Rust only — never answer it with Rust.
72+ - You document; you do not build. Write a complete, runnable program only
73+ when the user explicitly asks for one ("write me a program", "a full
74+ example I can run").
75+ - When an example needs a crate (serde…), name it and give its Cargo.toml line.
76+ - Keep it short and correct: an example that does not compile is worse
77+ than no example.
added agent.yaml +65 -0
new file mode 100644
@@ -0,0 +1,65 @@
1+# Coding helpers — interactive documentation for Go and Rust
2+
3+provider: llmman
4+model: hf.co/openbmb/MiniCPM5-2B-GGUF:Q4_K_M
5+baseUrl: http://127.0.0.1:17434/v1
6+fallback: http://host.docker.internal:17434/v1
7+contextWindow: 32768
8+
9+# The team. The description is what the coordinator reads to choose.
10+mmConfigs:
11+ go:
12+ path: agent.go.yaml
13+ description: >-
14+ Go specialist. Explains Go concepts and how to do something in Go,
15+ with short examples, like documentation. For any question about Go.
16+ yolo: true
17+ rust:
18+ path: agent.rust.yaml
19+ description: >-
20+ Rust specialist. Explains Rust concepts and how to do something in
21+ Rust, with short examples, like documentation. For any question about
22+ Rust.
23+ yolo: true
24+
25+sampling:
26+ temperature: 0.3
27+ top_p: 0.95
28+ max_tokens: 2048
29+ parallel_tool_calls: false
30+ chat_template_kwargs:
31+ enable_thinking: false
32+
33+watchdogTimeout: 5m
34+firstTokenTimeout: 3m
35+
36+# one call, one sentence.
37+maxTurns: 3
38+maxOutput: 20000
39+displayCommands: true
40+
41+yolo: true
42+bashTool: false
43+editTools: false
44+planTool: false
45+fetchContentTool: false
46+askUserTool: false
47+skillsDir: no-skills
48+
49+acp:
50+ name: coding-helpers
51+ title: 🧭 Coding helpers (Go, Rust)
52+
53+system: |
54+ You are the front desk of two programming specialists: go and rust.
55+
56+ When the user asks something about programming, call the ask_agent tool once:
57+ - agent: go if the question is about Go, rust if it is about Rust.
58+ - prompt: the user's message, copied exactly.
59+ - with_context: true, so the specialist sees the conversation so far.
60+
61+ When the tool has answered, write one short sentence in the user's
62+ language saying the explanation is above.
63+
64+ If the language is neither Go nor Rust, say in one sentence that you only know Go and Rust.
65+ When the user only greets you, greet back.
new file mode 100644
@@ -0,0 +1,65 @@
1+# Coding helpers — interactive documentation for Go and Rust
2+
3+provider: llmman
4+model: hf.co/openbmb/MiniCPM5-2B-GGUF:Q4_K_M
5+baseUrl: http://127.0.0.1:17434/v1
6+fallback: http://host.docker.internal:17434/v1
7+contextWindow: 32768
8+
9+# The team. The description is what the coordinator reads to choose.
10+mmConfigs:
11+ go:
12+ path: agent.go.yaml
13+ description: >-
14+ Go specialist. Explains Go concepts and how to do something in Go,
15+ with short examples, like documentation. For any question about Go.
16+ yolo: true
17+ rust:
18+ path: agent.rust.yaml
19+ description: >-
20+ Rust specialist. Explains Rust concepts and how to do something in
21+ Rust, with short examples, like documentation. For any question about
22+ Rust.
23+ yolo: true
24+
25+sampling:
26+ temperature: 0.3
27+ top_p: 0.95
28+ max_tokens: 2048
29+ parallel_tool_calls: false
30+ chat_template_kwargs:
31+ enable_thinking: false
32+
33+watchdogTimeout: 5m
34+firstTokenTimeout: 3m
35+
36+# one call, one sentence.
37+maxTurns: 3
38+maxOutput: 20000
39+displayCommands: true
40+
41+yolo: true
42+bashTool: false
43+editTools: false
44+planTool: false
45+fetchContentTool: false
46+askUserTool: false
47+skillsDir: no-skills
48+
49+acp:
50+ name: coding-helpers
51+ title: 🧭 Coding helpers (Go, Rust)
52+
53+system: |
54+ You are the front desk of two programming specialists: go and rust.
55+
56+ When the user asks something about programming, call the ask_agent tool once:
57+ - agent: go if the question is about Go, rust if it is about Rust.
58+ - prompt: the user's message, copied exactly.
59+ - with_context: true, so the specialist sees the conversation so far.
60+
61+ When the tool has answered, write one short sentence in the user's
62+ language saying the explanation is above.
63+
64+ If the language is neither Go nor Rust, say in one sentence that you only know Go and Rust.
65+ When the user only greets you, greet back.
added git.sh +136 -0
new file mode 100755
@@ -0,0 +1,136 @@
1+#!/bin/bash
2+message=""
3+case $1 in
4+
5+ # 🎨: art
6+ art)
7+ message="Improve structure / format of the code"
8+ emoji="🎨"
9+ ;;
10+
11+ # 🐛: bug
12+ bug|fix)
13+ message="Fix a bug"
14+ emoji="🐛"
15+ ;;
16+
17+ # 🤓: geek
18+ human|human-fixed)
19+ message="Human Fixed"
20+ emoji="🤓"
21+ ;;
22+
23+ # 🤖: robot
24+ ai|ai-generated)
25+ message="AI generated"
26+ emoji="🤖"
27+ ;;
28+
29+ # ✨: sparkles
30+ sparkles|feature)
31+ message="Introduce new feature(s)"
32+ emoji="✨"
33+ ;;
34+
35+ # 🧩: jigsaw
36+ jigsaw|example|examples|demo|demos)
37+ message="Introduce new example(s)"
38+ emoji="🧩"
39+ ;;
40+
41+
42+ # 📝: memo
43+ memo|doc|documentation)
44+ message="Add or update documentation"
45+ emoji="📝"
46+ ;;
47+
48+ # 🌸: cherry_blossom
49+ gardening|garden|clean|cleaning)
50+ message="Gardening"
51+ emoji="🌸"
52+ ;;
53+
54+ # 🚀: rocket
55+ rocket|deploy)
56+ message="Deploy stuff"
57+ emoji="🚀"
58+ ;;
59+
60+ # 🎉: tada
61+ tada|first)
62+ message="Begin a project"
63+ emoji="🎉"
64+ ;;
65+
66+ # 🚧: construction
67+ construction|wip)
68+ message="Work in progress"
69+ emoji="🚧"
70+ ;;
71+
72+ # 📦️: package
73+ package|build)
74+ message="Add or update compiled files or packages"
75+ emoji="📦️"
76+ ;;
77+
78+ # 📦️: package
79+ release)
80+ message="Create a release"
81+ emoji="📦️"
82+ ;;
83+
84+ # 👽️: alien
85+ alien|api)
86+ message="Update code due to external API changes"
87+ emoji="👽️"
88+ ;;
89+
90+ # 🐳: whale
91+ docker|container)
92+ message="Docker"
93+ emoji="🐳"
94+ ;;
95+
96+ # 🍊: tangerine
97+ gitpod|gitpodify)
98+ message="Gitpodify"
99+ emoji="🍊"
100+ ;;
101+
102+ # 🧪: test tube
103+ alembic|experiments|experiment|xp)
104+ message="Perform experiments"
105+ emoji="🧪"
106+ ;;
107+
108+ # ✅: check mark
109+ test|tests|testing)
110+ message="Add or update tests"
111+ emoji="✅"
112+ ;;
113+
114+ # 💾: floppy-disk
115+ save)
116+ message="Saved"
117+ emoji="💾"
118+ ;;
119+
120+ *)
121+ message="Updated"
122+ emoji="🛟"
123+ ;;
124+
125+esac
126+
127+find . -name '.DS_Store' -type f -delete
128+
129+if [ -z "$2" ]
130+then
131+ # empty
132+ git add .; git commit -m "$emoji $message."; git push
133+else
134+ # not empty
135+ git add .; git commit -m "$emoji $message: $2"; git push
136+fi
new file mode 100755
@@ -0,0 +1,136 @@
1+#!/bin/bash
2+message=""
3+case $1 in
4+
5+ # 🎨: art
6+ art)
7+ message="Improve structure / format of the code"
8+ emoji="🎨"
9+ ;;
10+
11+ # 🐛: bug
12+ bug|fix)
13+ message="Fix a bug"
14+ emoji="🐛"
15+ ;;
16+
17+ # 🤓: geek
18+ human|human-fixed)
19+ message="Human Fixed"
20+ emoji="🤓"
21+ ;;
22+
23+ # 🤖: robot
24+ ai|ai-generated)
25+ message="AI generated"
26+ emoji="🤖"
27+ ;;
28+
29+ # ✨: sparkles
30+ sparkles|feature)
31+ message="Introduce new feature(s)"
32+ emoji="✨"
33+ ;;
34+
35+ # 🧩: jigsaw
36+ jigsaw|example|examples|demo|demos)
37+ message="Introduce new example(s)"
38+ emoji="🧩"
39+ ;;
40+
41+
42+ # 📝: memo
43+ memo|doc|documentation)
44+ message="Add or update documentation"
45+ emoji="📝"
46+ ;;
47+
48+ # 🌸: cherry_blossom
49+ gardening|garden|clean|cleaning)
50+ message="Gardening"
51+ emoji="🌸"
52+ ;;
53+
54+ # 🚀: rocket
55+ rocket|deploy)
56+ message="Deploy stuff"
57+ emoji="🚀"
58+ ;;
59+
60+ # 🎉: tada
61+ tada|first)
62+ message="Begin a project"
63+ emoji="🎉"
64+ ;;
65+
66+ # 🚧: construction
67+ construction|wip)
68+ message="Work in progress"
69+ emoji="🚧"
70+ ;;
71+
72+ # 📦️: package
73+ package|build)
74+ message="Add or update compiled files or packages"
75+ emoji="📦️"
76+ ;;
77+
78+ # 📦️: package
79+ release)
80+ message="Create a release"
81+ emoji="📦️"
82+ ;;
83+
84+ # 👽️: alien
85+ alien|api)
86+ message="Update code due to external API changes"
87+ emoji="👽️"
88+ ;;
89+
90+ # 🐳: whale
91+ docker|container)
92+ message="Docker"
93+ emoji="🐳"
94+ ;;
95+
96+ # 🍊: tangerine
97+ gitpod|gitpodify)
98+ message="Gitpodify"
99+ emoji="🍊"
100+ ;;
101+
102+ # 🧪: test tube
103+ alembic|experiments|experiment|xp)
104+ message="Perform experiments"
105+ emoji="🧪"
106+ ;;
107+
108+ # ✅: check mark
109+ test|tests|testing)
110+ message="Add or update tests"
111+ emoji="✅"
112+ ;;
113+
114+ # 💾: floppy-disk
115+ save)
116+ message="Saved"
117+ emoji="💾"
118+ ;;
119+
120+ *)
121+ message="Updated"
122+ emoji="🛟"
123+ ;;
124+
125+esac
126+
127+find . -name '.DS_Store' -type f -delete
128+
129+if [ -z "$2" ]
130+then
131+ # empty
132+ git add .; git commit -m "$emoji $message."; git push
133+else
134+ # not empty
135+ git add .; git commit -m "$emoji $message: $2"; git push
136+fi