lliki 0.2.1__tar.gz
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.
- lliki-0.2.1/CHANGELOG.md +19 -0
- lliki-0.2.1/LICENSE +21 -0
- lliki-0.2.1/MANIFEST.in +4 -0
- lliki-0.2.1/PKG-INFO +333 -0
- lliki-0.2.1/README.md +311 -0
- lliki-0.2.1/docs/AGENT_INTEGRATIONS.md +25 -0
- lliki-0.2.1/docs/DESIGN.md +58 -0
- lliki-0.2.1/docs/IMPLEMENTATION_CHECKPOINTS.md +38 -0
- lliki-0.2.1/docs/assets/lliki-ascii.png +0 -0
- lliki-0.2.1/pyproject.toml +40 -0
- lliki-0.2.1/setup.cfg +4 -0
- lliki-0.2.1/src/lliki/__init__.py +3 -0
- lliki-0.2.1/src/lliki/__main__.py +4 -0
- lliki-0.2.1/src/lliki/branding.py +61 -0
- lliki-0.2.1/src/lliki/cli.py +524 -0
- lliki-0.2.1/src/lliki/core/__init__.py +1 -0
- lliki-0.2.1/src/lliki/core/append.py +24 -0
- lliki-0.2.1/src/lliki/core/bootstrap.py +187 -0
- lliki-0.2.1/src/lliki/core/context.py +33 -0
- lliki-0.2.1/src/lliki/core/doctor.py +71 -0
- lliki-0.2.1/src/lliki/core/inspection.py +61 -0
- lliki-0.2.1/src/lliki/core/models.py +51 -0
- lliki-0.2.1/src/lliki/core/patching.py +59 -0
- lliki-0.2.1/src/lliki/core/prompts.py +60 -0
- lliki-0.2.1/src/lliki/core/resources.py +103 -0
- lliki-0.2.1/src/lliki/core/runtime.py +124 -0
- lliki-0.2.1/src/lliki/core/tasks.py +138 -0
- lliki-0.2.1/src/lliki/hooks.py +70 -0
- lliki-0.2.1/src/lliki/integrations/__init__.py +1 -0
- lliki-0.2.1/src/lliki/integrations/install.py +101 -0
- lliki-0.2.1/src/lliki/templates/CLAUDE.md +98 -0
- lliki-0.2.1/src/lliki/templates/integrations/claude/SKILL.md +26 -0
- lliki-0.2.1/src/lliki/templates/integrations/generic/AGENTS.md +23 -0
- lliki-0.2.1/src/lliki/templates/integrations/hermes/HERMES.md +20 -0
- lliki-0.2.1/src/lliki/templates/prompts/complete-task.md +16 -0
- lliki-0.2.1/src/lliki/templates/prompts/explore-impact.md +14 -0
- lliki-0.2.1/src/lliki/templates/prompts/initialize-project.md +26 -0
- lliki-0.2.1/src/lliki/templates/prompts/migrate-legacy.md +14 -0
- lliki-0.2.1/src/lliki/templates/prompts/review-wiki.md +13 -0
- lliki-0.2.1/src/lliki/templates/template-pack.json +81 -0
- lliki-0.2.1/src/lliki/templates/wiki/decisions.md +16 -0
- lliki-0.2.1/src/lliki/templates/wiki/docs/README.md +13 -0
- lliki-0.2.1/src/lliki/templates/wiki/docs/development-workflow.md +25 -0
- lliki-0.2.1/src/lliki/templates/wiki/docs/project-overview.md +20 -0
- lliki-0.2.1/src/lliki/templates/wiki/docs/repository-rules.md +23 -0
- lliki-0.2.1/src/lliki/templates/wiki/exploratory/index.md +13 -0
- lliki-0.2.1/src/lliki/templates/wiki/index.md +38 -0
- lliki-0.2.1/src/lliki/templates/wiki/lessons_learned.md +15 -0
- lliki-0.2.1/src/lliki/templates/wiki/tasks/dashboard.md +22 -0
- lliki-0.2.1/src/lliki/templates/wiki/wiki-rules.md +87 -0
- lliki-0.2.1/src/lliki.egg-info/PKG-INFO +333 -0
- lliki-0.2.1/src/lliki.egg-info/SOURCES.txt +55 -0
- lliki-0.2.1/src/lliki.egg-info/dependency_links.txt +1 -0
- lliki-0.2.1/src/lliki.egg-info/entry_points.txt +2 -0
- lliki-0.2.1/src/lliki.egg-info/top_level.txt +1 -0
- lliki-0.2.1/tests/test_cli_subprocess.py +47 -0
- lliki-0.2.1/tests/test_lliki.py +209 -0
lliki-0.2.1/CHANGELOG.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.1 - 2026-07-31
|
|
4
|
+
|
|
5
|
+
- Added a width-aware Lliki ASCII welcome banner to interactive setup.
|
|
6
|
+
- Added concise project-purpose, privacy, and author text.
|
|
7
|
+
- Kept non-interactive, JSON, hook, and CI output banner-free.
|
|
8
|
+
- Added `LLIKI_NO_BANNER=1` as an optional local override.
|
|
9
|
+
|
|
10
|
+
## 0.2.0 - 2026-07-31
|
|
11
|
+
|
|
12
|
+
- Rebuilt the bootstrap as an installable, model-neutral CLI.
|
|
13
|
+
- Moved all Markdown and prompts out of Python into editable package templates.
|
|
14
|
+
- Added simple default and progressive custom setup paths.
|
|
15
|
+
- Made runtime state and scratchpad optional.
|
|
16
|
+
- Added repository-local Claude, Hermes, and generic-agent integrations.
|
|
17
|
+
- Added managed-section patching instead of whole-file replacement.
|
|
18
|
+
- Added prompt token estimates, structural doctor checks, and task dashboard refresh.
|
|
19
|
+
- Added Homebrew and Debian packaging templates.
|
lliki-0.2.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 brunofbloq
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
lliki-0.2.1/MANIFEST.in
ADDED
lliki-0.2.1/PKG-INFO
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lliki
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Local repository wiki bootstrap and maintenance CLI for humans and coding tools
|
|
5
|
+
Author: brunofbloq
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/brunofbloq/lliki
|
|
8
|
+
Project-URL: Repository, https://github.com/brunofbloq/lliki
|
|
9
|
+
Project-URL: Issues, https://github.com/brunofbloq/lliki/issues
|
|
10
|
+
Keywords: wiki,repository,documentation,llm,claude,hermes,developer-tools
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
17
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Dynamic: license-file
|
|
22
|
+
|
|
23
|
+
# Lliki
|
|
24
|
+
|
|
25
|
+
`lliki` is a local CLI that creates and maintains a low-token, model-neutral project wiki for humans and coding tools. The normal user workflow remains simple: initialize the
|
|
26
|
+
repository once, print the recommended LLM onboarding prompt, and then work with
|
|
27
|
+
Claude, Hermes, or another coding agent normally.
|
|
28
|
+
|
|
29
|
+
The application performs deterministic file mechanics. The LLM remains
|
|
30
|
+
responsible for semantic engineering decisions and project documentation.
|
|
31
|
+
|
|
32
|
+
> Lliki does not call an LLM, require API credentials, or transmit repository content by default. Optional repository-local integrations let coding agents use its deterministic wiki-management commands.
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<img src="https://raw.githubusercontent.com/brunofbloq/lliki/main/docs/assets/lliki-ascii.png" alt="Lliki ASCII logo" width="760">
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
**Author:** `brunofbloq`
|
|
39
|
+
|
|
40
|
+
## Interactive welcome
|
|
41
|
+
|
|
42
|
+
Running `lliki` or `lliki init` in an interactive terminal displays the Lliki
|
|
43
|
+
ASCII welcome, a concise project-purpose statement, and the author. The banner
|
|
44
|
+
is intentionally omitted from non-interactive runs, JSON output, hooks, and CI.
|
|
45
|
+
Set `LLIKI_NO_BANNER=1` to suppress it locally.
|
|
46
|
+
|
|
47
|
+
## Key design decisions
|
|
48
|
+
|
|
49
|
+
- `wiki/index.md` is the only mandatory dynamic project entry point.
|
|
50
|
+
- The default setup creates only the wiki and safely creates or patches
|
|
51
|
+
`CLAUDE.md`.
|
|
52
|
+
- Runtime state, scratchpad, hooks, and agent integrations are opt-in.
|
|
53
|
+
- All Markdown templates and suggested prompts are editable files, not Python
|
|
54
|
+
string literals.
|
|
55
|
+
- The specialist skill `embedded-systems-architect` is recommended only in the
|
|
56
|
+
printed onboarding prompt. It is not hard-coded into `CLAUDE.md` or the wiki.
|
|
57
|
+
- Every suggested LLM prompt includes a prompt-token estimate and expected total
|
|
58
|
+
call range.
|
|
59
|
+
- Permanent wiki updates are event-driven: after meaningful task events and at
|
|
60
|
+
the end of completed user requests, only when project truth changed.
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
### pipx
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pipx install lliki
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### pip
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
python -m pip install lliki
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Homebrew
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
brew install brunofbloq/tap/lliki
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### GitHub development version
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pipx install "git+https://github.com/brunofbloq/lliki.git"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Local development
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
python -m pip install -e .
|
|
92
|
+
lliki --version
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Local pipx install
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pipx install .
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The same installed `lliki` command works in Bash, PowerShell, CMD, macOS,
|
|
102
|
+
Linux, and Windows.
|
|
103
|
+
|
|
104
|
+
### Windows PowerShell helper
|
|
105
|
+
|
|
106
|
+
```powershell
|
|
107
|
+
.\scripts\install.ps1 -Source .
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Bash helper
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
./scripts/install.sh .
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Homebrew and Debian packaging templates are under `packaging/`.
|
|
117
|
+
|
|
118
|
+
## Default setup
|
|
119
|
+
|
|
120
|
+
Run:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
lliki init
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The TUI offers:
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
[1] Default — create/repair wiki and update CLAUDE.md
|
|
130
|
+
[2] Custom — optional runtime state and repository-local integrations
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Default setup creates:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
CLAUDE.md
|
|
137
|
+
wiki/
|
|
138
|
+
├── index.md
|
|
139
|
+
├── wiki-rules.md
|
|
140
|
+
├── tasks/
|
|
141
|
+
│ └── dashboard.md
|
|
142
|
+
├── decisions.md
|
|
143
|
+
├── lessons_learned.md
|
|
144
|
+
├── exploratory/
|
|
145
|
+
│ └── index.md
|
|
146
|
+
└── docs/
|
|
147
|
+
├── README.md
|
|
148
|
+
├── project-overview.md
|
|
149
|
+
├── development-workflow.md
|
|
150
|
+
└── repository-rules.md
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
It then prints the LLM initialization prompt and its estimated token usage in
|
|
154
|
+
the terminal. It does not create `.lliki/`, install hooks, create a
|
|
155
|
+
scratchpad, or install skills.
|
|
156
|
+
|
|
157
|
+
Non-interactive equivalent:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
lliki init --default --yes
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Custom setup
|
|
164
|
+
|
|
165
|
+
Custom setup can opt into:
|
|
166
|
+
|
|
167
|
+
- lightweight local resume state;
|
|
168
|
+
- optional debug scratchpad and log directory;
|
|
169
|
+
- generic `AGENTS.md` integration;
|
|
170
|
+
- repository-local Claude skill and optional hooks;
|
|
171
|
+
- repository-local Hermes context through `.hermes.md`.
|
|
172
|
+
|
|
173
|
+
Example:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
lliki init --custom --runtime assisted \
|
|
177
|
+
--integrate generic,claude,hermes --yes
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Debug scratchpad remains optional:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
lliki init --custom --runtime debug --scratchpad --yes
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
When runtime assistance is enabled, local non-authoritative state lives under
|
|
187
|
+
`.lliki/`, which is added to `.gitignore`.
|
|
188
|
+
|
|
189
|
+
## Normal agent workflow
|
|
190
|
+
|
|
191
|
+
The user does not need to run maintenance commands during normal development.
|
|
192
|
+
Generated instructions teach the coding agent to:
|
|
193
|
+
|
|
194
|
+
1. begin from `wiki/index.md`;
|
|
195
|
+
2. load only relevant context;
|
|
196
|
+
3. update project knowledge after meaningful events and completed requests;
|
|
197
|
+
4. use `lliki` internally for mechanical checks when efficient;
|
|
198
|
+
5. avoid whole-wiki reads and whole-file rewrites.
|
|
199
|
+
|
|
200
|
+
Manual commands remain available when a token-free structural check is useful.
|
|
201
|
+
|
|
202
|
+
## Token-free commands
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
lliki inspect --json
|
|
206
|
+
lliki doctor --json
|
|
207
|
+
lliki context --json
|
|
208
|
+
lliki tasks refresh --update-index
|
|
209
|
+
lliki templates diff
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Suggested LLM prompts
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
lliki prompt list
|
|
216
|
+
lliki prompt show initialize-project
|
|
217
|
+
lliki prompt show migrate-legacy
|
|
218
|
+
lliki prompt show complete-task
|
|
219
|
+
lliki prompt show explore-impact
|
|
220
|
+
lliki prompt show review-wiki
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Every prompt prints:
|
|
224
|
+
|
|
225
|
+
- approximate prompt-only tokens;
|
|
226
|
+
- expected total call range;
|
|
227
|
+
- a reminder that actual use depends on model and loaded repository context.
|
|
228
|
+
|
|
229
|
+
## Editing templates like documents
|
|
230
|
+
|
|
231
|
+
Export the built-in template pack:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
lliki templates export ./my-lliki-templates
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Edit the Markdown files directly, including `CLAUDE.md`, wiki pages, integration
|
|
238
|
+
instructions, and prompts. Validate them:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
lliki templates validate --template-dir ./my-lliki-templates
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Preview repository changes:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
lliki templates diff \
|
|
248
|
+
--template-dir ./my-lliki-templates \
|
|
249
|
+
--root .
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Apply only missing files and managed-section changes:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
lliki templates sync \
|
|
256
|
+
--template-dir ./my-lliki-templates \
|
|
257
|
+
--root .
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
The environment variable form is also supported:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
export LLIKI_TEMPLATE_DIR="$PWD/my-lliki-templates"
|
|
264
|
+
lliki init
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
PowerShell:
|
|
268
|
+
|
|
269
|
+
```powershell
|
|
270
|
+
$env:LLIKI_TEMPLATE_DIR = "$PWD\my-lliki-templates"
|
|
271
|
+
lliki init
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Task metadata and dashboard generation
|
|
275
|
+
|
|
276
|
+
Task files can use YAML front matter:
|
|
277
|
+
|
|
278
|
+
```markdown
|
|
279
|
+
---
|
|
280
|
+
id: HWRD-115
|
|
281
|
+
title: Sensor bring-up
|
|
282
|
+
status: active
|
|
283
|
+
priority: high
|
|
284
|
+
updated: 2026-07-31
|
|
285
|
+
---
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
`lliki tasks refresh` generates `wiki/tasks/dashboard.md` without an LLM.
|
|
289
|
+
With `--update-index`, exactly one active task is linked from `wiki/index.md`.
|
|
290
|
+
|
|
291
|
+
## Safe update behavior
|
|
292
|
+
|
|
293
|
+
- Existing content is never blindly replaced.
|
|
294
|
+
- Managed sections are identified by HTML comment markers.
|
|
295
|
+
- Existing `CLAUDE.md` content is preserved; the stable managed contract is
|
|
296
|
+
appended when no marker exists.
|
|
297
|
+
- Backups are created before managed updates.
|
|
298
|
+
- Decisions and lessons use append-only files.
|
|
299
|
+
- Context-sensitive wiki files are created with explicit `Needs validation`
|
|
300
|
+
markers for LLM or human initialization.
|
|
301
|
+
|
|
302
|
+
## Repository-local agent integrations
|
|
303
|
+
|
|
304
|
+
### Claude Code
|
|
305
|
+
|
|
306
|
+
Custom setup can create:
|
|
307
|
+
|
|
308
|
+
```text
|
|
309
|
+
.claude/skills/lliki/SKILL.md
|
|
310
|
+
.claude/settings.json
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Hooks are optional. When enabled, they perform only mechanical dashboard and
|
|
314
|
+
structural maintenance and do not invent semantic documentation.
|
|
315
|
+
|
|
316
|
+
### Hermes
|
|
317
|
+
|
|
318
|
+
Custom setup can create `.hermes.md`, which instructs Hermes to begin from the
|
|
319
|
+
same wiki entry point and use the CLI internally when efficient.
|
|
320
|
+
|
|
321
|
+
### Generic agents
|
|
322
|
+
|
|
323
|
+
Custom setup can create `AGENTS.md` for compatible coding agents.
|
|
324
|
+
|
|
325
|
+
## Development and tests
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
PYTHONPATH=src python -m unittest discover -s tests -v
|
|
329
|
+
python -m compileall -q src
|
|
330
|
+
python -m pip wheel . --no-deps --wheel-dir dist
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
See [docs/DESIGN.md](docs/DESIGN.md) for architecture and update ownership.
|
lliki-0.2.1/README.md
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
# Lliki
|
|
2
|
+
|
|
3
|
+
`lliki` is a local CLI that creates and maintains a low-token, model-neutral project wiki for humans and coding tools. The normal user workflow remains simple: initialize the
|
|
4
|
+
repository once, print the recommended LLM onboarding prompt, and then work with
|
|
5
|
+
Claude, Hermes, or another coding agent normally.
|
|
6
|
+
|
|
7
|
+
The application performs deterministic file mechanics. The LLM remains
|
|
8
|
+
responsible for semantic engineering decisions and project documentation.
|
|
9
|
+
|
|
10
|
+
> Lliki does not call an LLM, require API credentials, or transmit repository content by default. Optional repository-local integrations let coding agents use its deterministic wiki-management commands.
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<img src="https://raw.githubusercontent.com/brunofbloq/lliki/main/docs/assets/lliki-ascii.png" alt="Lliki ASCII logo" width="760">
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
**Author:** `brunofbloq`
|
|
17
|
+
|
|
18
|
+
## Interactive welcome
|
|
19
|
+
|
|
20
|
+
Running `lliki` or `lliki init` in an interactive terminal displays the Lliki
|
|
21
|
+
ASCII welcome, a concise project-purpose statement, and the author. The banner
|
|
22
|
+
is intentionally omitted from non-interactive runs, JSON output, hooks, and CI.
|
|
23
|
+
Set `LLIKI_NO_BANNER=1` to suppress it locally.
|
|
24
|
+
|
|
25
|
+
## Key design decisions
|
|
26
|
+
|
|
27
|
+
- `wiki/index.md` is the only mandatory dynamic project entry point.
|
|
28
|
+
- The default setup creates only the wiki and safely creates or patches
|
|
29
|
+
`CLAUDE.md`.
|
|
30
|
+
- Runtime state, scratchpad, hooks, and agent integrations are opt-in.
|
|
31
|
+
- All Markdown templates and suggested prompts are editable files, not Python
|
|
32
|
+
string literals.
|
|
33
|
+
- The specialist skill `embedded-systems-architect` is recommended only in the
|
|
34
|
+
printed onboarding prompt. It is not hard-coded into `CLAUDE.md` or the wiki.
|
|
35
|
+
- Every suggested LLM prompt includes a prompt-token estimate and expected total
|
|
36
|
+
call range.
|
|
37
|
+
- Permanent wiki updates are event-driven: after meaningful task events and at
|
|
38
|
+
the end of completed user requests, only when project truth changed.
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
### pipx
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pipx install lliki
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### pip
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
python -m pip install lliki
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Homebrew
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
brew install brunofbloq/tap/lliki
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### GitHub development version
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
pipx install "git+https://github.com/brunofbloq/lliki.git"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Local development
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
python -m pip install -e .
|
|
70
|
+
lliki --version
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Local pipx install
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pipx install .
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The same installed `lliki` command works in Bash, PowerShell, CMD, macOS,
|
|
80
|
+
Linux, and Windows.
|
|
81
|
+
|
|
82
|
+
### Windows PowerShell helper
|
|
83
|
+
|
|
84
|
+
```powershell
|
|
85
|
+
.\scripts\install.ps1 -Source .
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Bash helper
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
./scripts/install.sh .
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Homebrew and Debian packaging templates are under `packaging/`.
|
|
95
|
+
|
|
96
|
+
## Default setup
|
|
97
|
+
|
|
98
|
+
Run:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
lliki init
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The TUI offers:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
[1] Default — create/repair wiki and update CLAUDE.md
|
|
108
|
+
[2] Custom — optional runtime state and repository-local integrations
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Default setup creates:
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
CLAUDE.md
|
|
115
|
+
wiki/
|
|
116
|
+
├── index.md
|
|
117
|
+
├── wiki-rules.md
|
|
118
|
+
├── tasks/
|
|
119
|
+
│ └── dashboard.md
|
|
120
|
+
├── decisions.md
|
|
121
|
+
├── lessons_learned.md
|
|
122
|
+
├── exploratory/
|
|
123
|
+
│ └── index.md
|
|
124
|
+
└── docs/
|
|
125
|
+
├── README.md
|
|
126
|
+
├── project-overview.md
|
|
127
|
+
├── development-workflow.md
|
|
128
|
+
└── repository-rules.md
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
It then prints the LLM initialization prompt and its estimated token usage in
|
|
132
|
+
the terminal. It does not create `.lliki/`, install hooks, create a
|
|
133
|
+
scratchpad, or install skills.
|
|
134
|
+
|
|
135
|
+
Non-interactive equivalent:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
lliki init --default --yes
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Custom setup
|
|
142
|
+
|
|
143
|
+
Custom setup can opt into:
|
|
144
|
+
|
|
145
|
+
- lightweight local resume state;
|
|
146
|
+
- optional debug scratchpad and log directory;
|
|
147
|
+
- generic `AGENTS.md` integration;
|
|
148
|
+
- repository-local Claude skill and optional hooks;
|
|
149
|
+
- repository-local Hermes context through `.hermes.md`.
|
|
150
|
+
|
|
151
|
+
Example:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
lliki init --custom --runtime assisted \
|
|
155
|
+
--integrate generic,claude,hermes --yes
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Debug scratchpad remains optional:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
lliki init --custom --runtime debug --scratchpad --yes
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
When runtime assistance is enabled, local non-authoritative state lives under
|
|
165
|
+
`.lliki/`, which is added to `.gitignore`.
|
|
166
|
+
|
|
167
|
+
## Normal agent workflow
|
|
168
|
+
|
|
169
|
+
The user does not need to run maintenance commands during normal development.
|
|
170
|
+
Generated instructions teach the coding agent to:
|
|
171
|
+
|
|
172
|
+
1. begin from `wiki/index.md`;
|
|
173
|
+
2. load only relevant context;
|
|
174
|
+
3. update project knowledge after meaningful events and completed requests;
|
|
175
|
+
4. use `lliki` internally for mechanical checks when efficient;
|
|
176
|
+
5. avoid whole-wiki reads and whole-file rewrites.
|
|
177
|
+
|
|
178
|
+
Manual commands remain available when a token-free structural check is useful.
|
|
179
|
+
|
|
180
|
+
## Token-free commands
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
lliki inspect --json
|
|
184
|
+
lliki doctor --json
|
|
185
|
+
lliki context --json
|
|
186
|
+
lliki tasks refresh --update-index
|
|
187
|
+
lliki templates diff
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Suggested LLM prompts
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
lliki prompt list
|
|
194
|
+
lliki prompt show initialize-project
|
|
195
|
+
lliki prompt show migrate-legacy
|
|
196
|
+
lliki prompt show complete-task
|
|
197
|
+
lliki prompt show explore-impact
|
|
198
|
+
lliki prompt show review-wiki
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Every prompt prints:
|
|
202
|
+
|
|
203
|
+
- approximate prompt-only tokens;
|
|
204
|
+
- expected total call range;
|
|
205
|
+
- a reminder that actual use depends on model and loaded repository context.
|
|
206
|
+
|
|
207
|
+
## Editing templates like documents
|
|
208
|
+
|
|
209
|
+
Export the built-in template pack:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
lliki templates export ./my-lliki-templates
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Edit the Markdown files directly, including `CLAUDE.md`, wiki pages, integration
|
|
216
|
+
instructions, and prompts. Validate them:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
lliki templates validate --template-dir ./my-lliki-templates
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Preview repository changes:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
lliki templates diff \
|
|
226
|
+
--template-dir ./my-lliki-templates \
|
|
227
|
+
--root .
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Apply only missing files and managed-section changes:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
lliki templates sync \
|
|
234
|
+
--template-dir ./my-lliki-templates \
|
|
235
|
+
--root .
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
The environment variable form is also supported:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
export LLIKI_TEMPLATE_DIR="$PWD/my-lliki-templates"
|
|
242
|
+
lliki init
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
PowerShell:
|
|
246
|
+
|
|
247
|
+
```powershell
|
|
248
|
+
$env:LLIKI_TEMPLATE_DIR = "$PWD\my-lliki-templates"
|
|
249
|
+
lliki init
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Task metadata and dashboard generation
|
|
253
|
+
|
|
254
|
+
Task files can use YAML front matter:
|
|
255
|
+
|
|
256
|
+
```markdown
|
|
257
|
+
---
|
|
258
|
+
id: HWRD-115
|
|
259
|
+
title: Sensor bring-up
|
|
260
|
+
status: active
|
|
261
|
+
priority: high
|
|
262
|
+
updated: 2026-07-31
|
|
263
|
+
---
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
`lliki tasks refresh` generates `wiki/tasks/dashboard.md` without an LLM.
|
|
267
|
+
With `--update-index`, exactly one active task is linked from `wiki/index.md`.
|
|
268
|
+
|
|
269
|
+
## Safe update behavior
|
|
270
|
+
|
|
271
|
+
- Existing content is never blindly replaced.
|
|
272
|
+
- Managed sections are identified by HTML comment markers.
|
|
273
|
+
- Existing `CLAUDE.md` content is preserved; the stable managed contract is
|
|
274
|
+
appended when no marker exists.
|
|
275
|
+
- Backups are created before managed updates.
|
|
276
|
+
- Decisions and lessons use append-only files.
|
|
277
|
+
- Context-sensitive wiki files are created with explicit `Needs validation`
|
|
278
|
+
markers for LLM or human initialization.
|
|
279
|
+
|
|
280
|
+
## Repository-local agent integrations
|
|
281
|
+
|
|
282
|
+
### Claude Code
|
|
283
|
+
|
|
284
|
+
Custom setup can create:
|
|
285
|
+
|
|
286
|
+
```text
|
|
287
|
+
.claude/skills/lliki/SKILL.md
|
|
288
|
+
.claude/settings.json
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Hooks are optional. When enabled, they perform only mechanical dashboard and
|
|
292
|
+
structural maintenance and do not invent semantic documentation.
|
|
293
|
+
|
|
294
|
+
### Hermes
|
|
295
|
+
|
|
296
|
+
Custom setup can create `.hermes.md`, which instructs Hermes to begin from the
|
|
297
|
+
same wiki entry point and use the CLI internally when efficient.
|
|
298
|
+
|
|
299
|
+
### Generic agents
|
|
300
|
+
|
|
301
|
+
Custom setup can create `AGENTS.md` for compatible coding agents.
|
|
302
|
+
|
|
303
|
+
## Development and tests
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
PYTHONPATH=src python -m unittest discover -s tests -v
|
|
307
|
+
python -m compileall -q src
|
|
308
|
+
python -m pip wheel . --no-deps --wheel-dir dist
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
See [docs/DESIGN.md](docs/DESIGN.md) for architecture and update ownership.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Agent Integrations
|
|
2
|
+
|
|
3
|
+
## Default mode
|
|
4
|
+
|
|
5
|
+
No agent-specific integration is installed. Claude reads the root `CLAUDE.md`.
|
|
6
|
+
Hermes can also fall back to `CLAUDE.md` when no higher-priority project context
|
|
7
|
+
file exists.
|
|
8
|
+
|
|
9
|
+
## Generic
|
|
10
|
+
|
|
11
|
+
Creates `AGENTS.md`, which points compatible agents to the stable contract and
|
|
12
|
+
`wiki/index.md`.
|
|
13
|
+
|
|
14
|
+
## Claude
|
|
15
|
+
|
|
16
|
+
Creates a project skill at `.claude/skills/lliki/SKILL.md`. Optional
|
|
17
|
+
project hooks call `lliki` for mechanical dashboard refresh and lightweight
|
|
18
|
+
resume context. Hooks never invent semantic decisions or documentation.
|
|
19
|
+
|
|
20
|
+
## Hermes
|
|
21
|
+
|
|
22
|
+
Creates `.hermes.md`, which explicitly routes Hermes to the root stable contract
|
|
23
|
+
and the same wiki entry point. No global Hermes skill or plugin is installed.
|
|
24
|
+
|
|
25
|
+
All integrations are repository-local and opt-in.
|