Compare commits

...
2 Commits
Author SHA1 Message Date
mrcharles d5a0e4d8f6 refactor(rules): point redmine-cli invocation at centralized creds store
Merge redmine-cli into tooling-cli/redmine and drop the
redmine-cli/.env source path from the rules. The canonical
invocation now uses ~/.creds/redmine.env (system-independent)
with the registry image. Marks Q2 (bin/ wrapper gap) fully
resolved for both redmine and discourse.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-10 09:53:41 -05:00
mrcharles cf1b444a45 refactor(rules): point discourse-cli invocation at centralized creds store
Merge discourse-cli into tooling-cli/discourse and drop the
discourse-cli/.env source path from the rules. The canonical
invocation now uses ~/.creds/discourse.env (system-independent)
with the registry image. Marks Q2 (bin/ wrapper gap) resolved.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-10 09:49:21 -05:00
2 changed files with 10 additions and 12 deletions
+4 -4
View File
@@ -66,13 +66,13 @@ Replace this bracketed text.>
### CLI invocation (no bin/ shortcuts — invoke the real containers) ### CLI invocation (no bin/ shortcuts — invoke the real containers)
``` ```
# redmine-cli (source: ~/projects/KNEL-AIMiddleware/redmine-cli/) # redmine-cli
docker run --rm --env-file ~/projects/KNEL-AIMiddleware/redmine-cli/.env \ docker run --rm --env-file ~/.creds/redmine.env \
git.knownelement.com/reachableceo/redmine-cli:latest <command> git.knownelement.com/reachableceo/redmine-cli:latest <command>
# subcommands: whoami, projects, statuses, list, show <id>, create, update <id>, close <id> # subcommands: whoami, projects, statuses, list, show <id>, create, update <id>, close <id>
# discourse-cli (source: ~/projects/KNEL-AIMiddleware/discourse-cli/) # discourse-cli
docker run --rm --env-file ~/projects/KNEL-AIMiddleware/discourse-cli/.env \ docker run --rm --env-file ~/.creds/discourse.env \
git.knownelement.com/reachableceo/discourse-cli:latest <command> git.knownelement.com/reachableceo/discourse-cli:latest <command>
# subcommands: whoami, categories, cat-info, topics, show <id>, create, reply <id>, update <post_id>, delete <post_id>, search # subcommands: whoami, categories, cat-info, topics, show <id>, create, reply <id>, update <post_id>, delete <post_id>, search
``` ```
+6 -8
View File
@@ -16,14 +16,12 @@
Go with option a. The tea command is setup on this workstation (and on ultix-offstage). I guess, also capture that the tea command (and docker login) are setup on my workstations, so that in the future, projects know they can use tea to setup a repo. Also, i want this to be TSYS wide, so it should go under the TSYSGroupCorporate organization. Call the repo: TSYSGroupAIOS . Make it a template repository. Go with option a. The tea command is setup on this workstation (and on ultix-offstage). I guess, also capture that the tea command (and docker login) are setup on my workstations, so that in the future, projects know they can use tea to setup a repo. Also, i want this to be TSYS wide, so it should go under the TSYSGroupCorporate organization. Call the repo: TSYSGroupAIOS . Make it a template repository.
### Q2. The bin/ wrapper gap (redmine-cli / discourse-cli) ### Q2. The bin/ wrapper gap (redmine-cli / discourse-cli) — RESOLVED (discourse)
- **Context:** PFVCluster's operational.md and AGENTS.md reference `~/daytoday/redmine/bin/redmine` and `~/daytoday/discourse/bin/discourse` as the entrypoints. But `ls ~/daytoday/{redmine,discourse}/` shows only `.gitignore` + `AGENTS.md` (+ MIGRATION-PLAN.md for discourse) — no `bin/`, no Dockerfile. The actual CLI source lives in `~/projects/KNEL-AIMiddleware/{redmine,discourse}-cli/`. - **Context:** Projects referenced `~/daytoday/redmine/bin/redmine` and `~/daytoday/discourse/bin/discourse` as entrypoints — thin shortcut wrappers around the real CLI containers. The actual CLI source lived in `~/projects/KNEL-AIMiddleware/{redmine,discourse}-cli/`.
- **Question:** Are the `bin/` wrappers something that should exist (and were lost / never committed), or is the documentation aspirational? Should the template reference these CLIs at all, or stay tool-agnostic? - **Question:** Are the `bin/` wrappers something that should exist, or is the documentation aspirational? Should the template reference these CLIs at all, or stay tool-agnostic?
- **Answer:** _(human)_ - **Answer:** Reference the real container invocation (full path/container name/invoke notes); no duplicate code via shortcut wrappers.
- **Decision:** _(human/agent)_ - **Decision:** No `bin/` wrappers. Invoke the real container with `docker run`. Both CLI sources have been merged into `~/projects/KNEL-AIMiddleware/tooling-cli/{discourse,redmine}/` (CLI source + Dockerfile + README + AGENTS.md). The canonical invocation is documented in AGENTS.md §CLI invocation and uses `--env-file ~/.creds/{discourse,redmine}.env` (centralized credential store) — no system-dependent paths in the rules. The old `~/daytoday/{discourse,redmine}` workspaces and the `{discourse,redmine}-cli/` subdirs were removed.
- **Synthesized to:** - **Synthesized to:** `~/daytoday/meta/AGENTS.md` §CLI invocation; `tooling-cli/{discourse,redmine}/`
The clis should exist. Maybe the AGENTS.md reference the actual paths? I dont need duplicate code. I think i was using the directories as kind of "shortcuts" vs the ~/projects/... path every time. So, for this repo, reference the full path/container name/invoke notes. Does that make sense?
### Q3. Should the template ship the Discourse pointer-header pattern? ### Q3. Should the template ship the Discourse pointer-header pattern?
- **Context:** PFVCluster migrated 36 in-repo `.md` files to 10-line pointer stubs citing `https://community.turnsys.com/t/<N>`. The template currently has `scripts/garden.sh` that *warns* about oversized non-Discourse `.md`, but doesn't enforce the pointer-header format. - **Context:** PFVCluster migrated 36 in-repo `.md` files to 10-line pointer stubs citing `https://community.turnsys.com/t/<N>`. The template currently has `scripts/garden.sh` that *warns* about oversized non-Discourse `.md`, but doesn't enforce the pointer-header format.