feat: add lola AI Context Module for skill distribution#126
feat: add lola AI Context Module for skill distribution#126yvonnedevlinrh wants to merge 3 commits into
Conversation
| > "No container image found for tag `<VERSION>`. Using `:main` instead. | ||
| > The `:main` tag tracks the latest commit on the main branch." | ||
|
|
||
| ### Step 5: Detect Tool Environment |
There was a problem hiding this comment.
You might want to put this up front so that it's nailed in early in the context window.
There was a problem hiding this comment.
Addressed in 6d911c1: moved tool environment detection to Step 1 so the LLM knows the target tool before making config decisions. Steps renumbered accordingly in both the canonical source and module copy.
| - **OpenCode**: Write `opencode.json` (see Step 6, `opencode.json` format). Verify that `.opencode/skills/` symlinks exist — if not, create them: | ||
| ```bash | ||
| mkdir -p .opencode/skills | ||
| ln -sf ../../skills/audit-pipeline .opencode/skills/audit-pipeline |
There was a problem hiding this comment.
Does this actually work? Seems like a hold over from a local environment.
There was a problem hiding this comment.
Addressed in 6d911c1: removed the symlink creation block. These instructions are specific to the complypack development environment (where skills/ exists at repo root). In consumer repos installed via lola, skill files are placed directly into .opencode/skills/ — no symlinks needed.
| } | ||
| ``` | ||
|
|
||
| > **Key differences:** OpenCode uses `opencode.json` with top-level key |
There was a problem hiding this comment.
Shouldn't need this block.
There was a problem hiding this comment.
This block is needed. OpenCode's config format differs from Claude Code's .mcp.json in three ways: (1) top-level key is mcp not mcpServers, (2) each server requires "type": "local", (3) command is a single array rather than split into command + args. Without this block, users wouldn't know the OpenCode-specific structure.
There was a problem hiding this comment.
Ah, my point is that users don't read this file, LLMs do. I don't think that the LLM needs this context block.
There was a problem hiding this comment.
I'm going to keep it on the off chance there is a a human who is reviewing the skill and might need to understand why two separate config blocks exist and what the structural differences are. Without it, a user editing the Claude config might assume the OpenCode block should match, or vice versa.
Move tool environment detection to Step 1 so the LLM knows the target tool before making config decisions. Remove symlink creation instructions that are specific to the complypack development environment and would not work in consumer repos installed via lola. Addresses PR complytime#126 review feedback from @trevor-vaughan. Assisted-by: OpenCode (claude-opus-4-6) Signed-off-by: Yvonne Devlin <ydevlin@redhat.com>
|
Thanks @trevor-vaughan Addressed the tool detection ordering and symlink cleanup in 6d911c1. I also opened #129 to track the sub-stage invocation guard question properly. |
| - rm -rf module/skills/mcp-setup module/skills/audit-pipeline module/skills/pack-assessment | ||
| - rm -f module/commands/comply-setup.md module/commands/comply-pipeline.md module/commands/comply-pack.md | ||
| - mkdir -p module/skills module/commands | ||
| - cp -r skills/mcp-setup module/skills/mcp-setup |
There was a problem hiding this comment.
This is kind of odd to me. Is the intent to support lola as well as other mechanisms?
lola will install to both claude and opencode.
There was a problem hiding this comment.
Yes, the intent is to support lola alongside the existing tool-specific plugin directories. Currently lola installs to OpenCode only. The root-level skills/ directory is the canonical source; .opencode/skills/ contains symlinks back to it for local complypack development (so OpenCode discovers the skills when working on this repo). module/ is the lola-distributable copy. sync-module keeps module/ in sync with the canonical sources so both paths stay current.
gvauter
left a comment
There was a problem hiding this comment.
AI Review Summary
Verdict: COMMENT — 1 verified finding (MEDIUM). No blocking issues from this review.
Verified Finding
[MEDIUM] check-module-sync not wired into CI: The PR adds check-module-sync as a Taskfile target and the PR description calls it "CI-friendly," but no workflow in .github/workflows/ runs it. Without CI enforcement, drift between canonical sources and module copies will go undetected. Can be addressed as a follow-up.
Notes
- 2 unresolved threads from @trevor-vaughan on the second commit remain the primary blocker (OpenCode config block at mcp-setup line 160; Taskfile scope question at line 22).
- Module copies verified in sync with canonical sources at current HEAD.
- All CI checks pass.
This review was generated by /review-pr (AI-assisted).
| - cp .opencode/commands/comply-pipeline.md module/commands/comply-pipeline.md | ||
| - cp .opencode/commands/comply-pack.md module/commands/comply-pack.md | ||
|
|
||
| check-module-sync: |
There was a problem hiding this comment.
[MEDIUM] check-module-sync is described as "CI-friendly" in the PR description, but no workflow in .github/workflows/ runs it. Without CI enforcement, drift between canonical sources (skills/, .opencode/commands/) and module/ copies will go undetected after future edits to canonical files. Consider adding a CI job that runs this target, or note in the PR description that CI integration is planned for a follow-up.
There was a problem hiding this comment.
Addressed in fd6f701: added a module-sync job to ci_local.yml that runs the diff checks on every push and PR to main. Used diff directly rather than task check-module-sync to avoid requiring Taskfile as a CI dependency. Automated syncing via a pre-commit hook is tracked in #139.
Add a module-sync job to ci_local.yml that verifies module/ copies match their canonical sources in skills/ and .opencode/commands/. Uses diff commands directly to avoid requiring Taskfile as a CI dependency. Addresses PR complytime#126 review feedback from @gvauter. Assisted-by: OpenCode (claude-opus-4-6) Signed-off-by: Yvonne Devlin <ydevlin@redhat.com>
Create module/ directory following the lola AI Context Module layout so consumer repos can install complypack skills and commands via lola instead of relying on symlinks that only resolve inside this repo. Structure: - module/AGENTS.md: consumer-facing overview of skills, commands, pipeline - module/mcps.json: MCP server config template with VERSION placeholders - module/skills/: copies of mcp-setup, audit-pipeline, pack-assessment - module/commands/: copies of comply-setup, comply-pipeline, comply-pack Add Taskfile targets for drift prevention: - sync-module: copies skills/ and commands into module/ - check-module-sync: diffs module/ against sources (CI-friendly) Update INSTALL.md with lola install instructions. Closes complytime#119 Assisted-by: OpenCode (claude-opus-4-6) Signed-off-by: Yvonne Devlin <ydevlin@redhat.com>
Move tool environment detection to Step 1 so the LLM knows the target tool before making config decisions. Remove symlink creation instructions that are specific to the complypack development environment and would not work in consumer repos installed via lola. Addresses PR complytime#126 review feedback from @trevor-vaughan. Assisted-by: OpenCode (claude-opus-4-6) Signed-off-by: Yvonne Devlin <ydevlin@redhat.com>
Add a module-sync job to ci_local.yml that verifies module/ copies match their canonical sources in skills/ and .opencode/commands/. Uses diff commands directly to avoid requiring Taskfile as a CI dependency. Addresses PR complytime#126 review feedback from @gvauter. Assisted-by: OpenCode (claude-opus-4-6) Signed-off-by: Yvonne Devlin <ydevlin@redhat.com>
9a07ffa to
ea88c49
Compare
Summary
Add a
module/directory following the lola AI Context Module layout so that consumer repos can install complypack's skills and commands vialola installinstead of manually copying files or relying on symlinks that only resolve inside this repo.What's included
New
module/directory (11 files):AGENTS.md— consumer-facing overview of skills, commands, and pipeline flowmcps.json— MCP server config template withVERSIONplaceholdersskills/— copies ofmcp-setup,audit-pipeline(with sub-stages), andpack-assessmentcommands/— copies ofcomply-setup,comply-pipeline,comply-packDrift prevention (Taskfile.yml):
task sync-module— regeneratesmodule/skills/andmodule/commands/from canonical sourcestask check-module-sync— diffs module copies against sources, exits non-zero on divergence (CI-friendly)Install docs (INSTALL.md):
What's unchanged (backwards compatible)
skills/(root) — canonical source, used by Claude Code / Cursor plugins.opencode/skills/(symlinks) — used for complypack development.opencode/commands/,commands/(TOML),.claude-plugin/,.cursor-plugin/,gemini-extension.jsonConsumer install flow
Related Issues
Review Hints