blob: 495874080666c971ea67d5bf506e40410fedafef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# Omni
The Omni project is to leverage automation and asymmetries to create wealth.
## Critical Rules for AI Agents
**CRITICAL**: This project uses `jr task` for ALL issue tracking. You MUST follow these rules:
- ✅ Use `jr task` for ALL task/TODO tracking (`jr task create ... --json`)
- ✅ Link discovered work with `--discovered-from=<parent-id>`
- ✅ File bugs IMMEDIATELY when you discover unexpected behavior
- ✅ Add facts to the knowledge base when you learn something useful (`jr facts add ...`)
- ✅ Run `jr task ready --json` before asking "what should I work on?"
- ❌ Do NOT create markdown TODO lists or task checklists
- ❌ Do NOT put TODO/FIXME comments in code
## Cheat Sheet
**Standard workflow:**
```bash
# 1. Find ready work
jr task ready --json
# 2. Claim a task
jr task update <id> in-progress --json
# 3. During work: create discovered issues
jr task create "Fix type error found" --discovered-from=<current-id> --json
# 4. Complete the task
jr task update <id> done --json
```
**Bug Discovery:**
```bash
# Create a task immediately
jr task create "Command X fails when Y" --discovered-from=<current-task-id> --json
```
## Directory Structure
- **`_/`** (cabdir) - All ephemeral/generated files. This directory is gitignored.
- `_/tmp/` - Temporary files, test databases, scratch data
- Never create dotfile directories (like `.tasks/`) in the repo root
## Python Conventions
- **Imports**: Use `import X as Y` pattern only. Do NOT use `from X import Y` because `bild` only detects the former.
- **Module naming**: If you have both `Foo.py` and `Foo/` directory, the build system gets confused. Rename `Foo.py` to `Foo/Core.py` and update imports accordingly.
## Common Commands
**Build:**
```bash
bild Omni/Jr.hs # Build a Haskell namespace
bild Biz/Cloud/Api.py # Build a Python namespace
```
**Lint and Format:**
```bash
lint Omni/Cli.hs # Lint a file (DO NOT use hlint directly)
lint --fix **/*.py # Lint and auto-fix Python files
```
**Type Check:**
```bash
typecheck.sh Omni/Bild/Example.py # Run mypy on Python files
```
**Test:**
```bash
bild --test Omni/Jr.hs # Build and run tests for a namespace
```
**Run:**
```bash
Omni/Ide/run.sh Omni/Jr.hs # Build (if needed) and run
```
## Documentation
- **Project Context**: [README.md](README.md) - Goals, source layout, and coding conventions.
- **Build Tool (Bild)**: [`Omni/Bild/README.md`](Omni/Bild/README.md) - How to use `bild` and manage dependencies.
- **Development Tools**: [`Omni/Ide/README.md`](Omni/Ide/README.md) - `run.sh`, `lint`, `repl.sh`, git workflow.
|