refactor(docs): invoke redmine-cli via docker run, not bin/ wrapper

Rewrite all Redmine CLI references to use raw docker run with
--env-file ~/.creds/redmine.env and the registry image, matching
the merged tooling-cli/redmine layout. Removes dependence on the
deleted ~/daytoday/redmine workspace. Marks Q2 fully resolved.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
2026-08-10 09:53:42 -05:00
parent b39fb246ef
commit 116bc1ef01
2 changed files with 27 additions and 19 deletions
+25 -17
View File
@@ -7,7 +7,7 @@
1. **Set up the environment:** `bash scripts/setup-hooks.sh` (installs git hooks — idempotent).
2. **Read this file** (`AGENTS.md`) — project policy and domain knowledge.
3. **Read [questions-v1.md](questions-v1.md)** — open questions awaiting human input.
4. **Check Redmine**`~/daytoday/redmine/bin/redmine list --assigned-to-me -p 55` for active work.
4. **Check Redmine**`docker run --rm --env-file ~/.creds/redmine.env git.knownelement.com/reachableceo/redmine-cli:latest list --assigned-to-me -p 55` for active work.
5. **Check current state:** `git log --oneline -10`.
6. **Run rule audit:** `bash scripts/check-rules.sh --fast`.
@@ -138,23 +138,30 @@ checklists, or TODOs in repo files. Use Redmine tickets instead.
### CLI access (read + write)
Tickets are managed via the `redmine` CLI wrapper in the `~/daytoday/redmine`
workspace (external to this repo). Full command reference, patterns, and
the subtask escape hatch live in `~/daytoday/redmine/AGENTS.md` — read it for
anything beyond the basics.
Tickets are managed via the `redmine-cli` container, invoked directly
with `docker run` (no wrapper script). Full command reference, patterns, and
the subtask escape hatch live in the CLI's own `AGENTS.md`
(`~/projects/KNEL-AIMiddleware/tooling-cli/redmine/AGENTS.md`) — read it
for anything beyond the basics.
```bash
# Connection sanity check (run first in any session):
~/daytoday/redmine/bin/redmine whoami
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest whoami
# Your queue (project 55):
~/daytoday/redmine/bin/redmine list --assigned-to-me -p 55
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest list --assigned-to-me -p 55
# Show / create / update / close:
~/daytoday/redmine/bin/redmine show 367
~/daytoday/redmine/bin/redmine create -p 55 -s "Subject" -d "desc"
~/daytoday/redmine/bin/redmine update 367 -n "Done: committed in abc123" --done-ratio 100
~/daytoday/redmine/bin/redmine close 367
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest show 367
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest create -p 55 -s "Subject" -d "desc"
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest update 367 -n "Done: committed in abc123" --done-ratio 100
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest close 367
```
Key IDs: project **55** (`technicaloperations`), user **5** (`reachableceo`).
@@ -162,10 +169,10 @@ Statuses: New(1), In Progress(2), Resolved(3,closed), Feedback(4), Closed(5),
Rejected(6). New subtasks go to **Feedback (4)**. Tracker **3** = Support.
**Gotcha:** `create` has no `--parent` flag — to make a subtask, use the
`python-redmine` escape hatch inside the container (see
`~/daytoday/redmine/AGENTS.md`). Always `show` a ticket before updating it.
`tooling-cli/redmine/AGENTS.md`). Always `show` a ticket before updating it.
The `.env` holding `REDMINE_URL`/`REDMINE_API_KEY` lives (gitignored) at
`/home/reachableceo/projects/KNEL-AIMiddleware/redmine-cli/.env`.
Credentials (`REDMINE_URL`/`REDMINE_API_KEY`) live in the centralized store
at `~/.creds/redmine.env`.
## Documentation Workflow
@@ -228,7 +235,7 @@ live in the centralized store at `~/.creds/discourse.env`.
| [`scripts/setup-hooks.sh`](scripts/setup-hooks.sh) | Install git hooks (pre-commit, pre-push) |
| [`tests/remote.sh`](tests/remote.sh) | **SSH chokepoint** — all Proxmox host + sandbox VM access routes here |
| [`netinfra/dns-cluster-setup/remote-dns.sh`](netinfra/dns-cluster-setup/remote-dns.sh) | SSH chokepoint for DNS infra hosts (netinfra-01/02, tsrouter, netboot) |
| `~/daytoday/redmine/bin/redmine` | Redmine CLI wrapper (ticket read/write via Docker container) |
| `redmine-cli` container | Redmine CLI (ticket read/write via `docker run`; see `tooling-cli/redmine/`) |
| `discourse-cli` container | Discourse CLI (wiki topic read/write via `docker run`; see `tooling-cli/discourse/`) |
| `~/daytoday/dns/bin/dns` | Technitium DNS CLI (zones, list, add, delete, search, flush) |
| [`tests/vm-validation.sh`](tests/vm-validation.sh) | Deploy + validate on sandbox VM |
@@ -298,7 +305,7 @@ Required for EVERY infrastructure change:
`koalaman/shellcheck:stable`). ALL scripts must pass including info-level.
- For raw API calls not covered by the Redmine/Discourse CLIs, use
`python3` inside the CLI Docker containers (escape hatch pattern in
`~/daytoday/redmine/AGENTS.md` and `tooling-cli/discourse/AGENTS.md`).
`tooling-cli/{discourse,redmine}/AGENTS.md`).
- `curl`/`wget`/`httpie` may be blocked by some harnesses. Use the CLIs or
the python-in-Docker escape hatch for HTTP writes.
@@ -312,7 +319,8 @@ bash tests/shellcheck.sh # shellcheck whole repo
bash tests/shellcheck.sh path/to/*.sh # shellcheck specific files
# Redmine + Discourse sanity checks (run first in any session):
~/daytoday/redmine/bin/redmine whoami
docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest whoami
docker run --rm --env-file ~/.creds/discourse.env \
git.knownelement.com/reachableceo/discourse-cli:latest whoami