Releases: oopsla5xx/open-context
Release list
v0.1.7 — Resolver made framework-agnostic (component_reason data-driven, .ts/.tsx fix) + Next.js benchmark
Changed
resolver.py:component_reason()no longer hardcodes Rails component descriptions (controller/operation/form/model/serializer) — now derives text fromcontext.yaml's owncomponents.<name>.responsibility/patterns, so a non-Rails component namedmodel(or any of those 5 names) no longer leaks Rails-specific text (ApplicationForm,attr_reader).resolver.py:.ts/.tsxfiles are no longer misclassified as directories in file inference; the "specific file" check is now based on whether the path has any extension, not a hardcoded.rb/.py/.jsallowlist.resolver.py: the directory-search naming hint is now derived fromcontext.yaml's ownfiles.<component>.namingtemplates instead of a hardcoded.rbhint.__init__.py,cli.py: wording no longer describes the resolver itself as Rails-only (thearchitecture validatesubcommand remains genuinely Rails-only and its help text still says so).
Added
examples/nextjs-sample/— a Next.js App Router / Server Actions reference sample (context.yaml + tests + context-decisions.md), generated via/oc-setup, used to benchmark the resolver on a second framework.docs/nextjs-effectiveness-report.md— coverage/amplification/token-reduction results against the Next.js sample, and the writeup of both bugs fixed in this release.docs/nextjs-real-world-test-report.md— results from testing against an unmodified third-party Next.js repo; surfaces an open finding (not fixed in this release): the resolver's routing threshold requires ≥2 keyword hits, so natural single-concept phrasing can silently fail to route.
Verification
pytest tests/test_hook_integration.py -v— 19/19 pass- Manual
resolvesmoke tests against bothrails-hmvc-sampleandnextjs-sampleconfirm no regression and no Rails-text leakage
v0.1.0 — First public release
Open:Context v0.1.0
Zero-LLM context routing for AI agents — hooks into every Claude Code prompt, injects only the relevant domain, files, and architecture rules.
Install
/plugin marketplace add oopsla5xx/open-context
/plugin install open-context@open-context
Open any project — the setup wizard starts automatically on first session.
What's included
Two hooks
SessionStart— detects first-run, triggers/oc-setupwizard automaticallyUserPromptSubmit— fires on every prompt; injects matched context or exits silently
Five skills
/oc-setup— wizard (scope · language · framework · architecture · actors) → generatescontext.yaml+ test files → agentic validate loop/oc-init— regeneratecontext.yamlfrom docs and source code/oc-resolve— debug routing for any task/oc-validate— phrasing coverage + amplification safety check/oc-validate-architecture— static scan of 6 HMVC compliance rules (R1–R6)
CLI (optional, for CI)
pip install git+https://github.com/oopsla5xx/open-context.git
open-context validate --context path/to/context.yaml --tests path/to/tests/
Known unmeasured
- Hook latency on NFS / Docker / WSL2 cross-filesystem setups has not been benchmarked
- Output truncation frequency at 20+ domains has not been measured in production
See README and CHANGELOG for full details.v0.1.6 — File-existence check, --strict flag, CI workflow, wizard CI question
What's new
File-existence check in open-context validate
Every path declared in related_components (domain + subtype level) is now
verified against the filesystem. Both files and directories are checked.
--repo PATH— repo root for the check (default: current directory)--strict— exits 1 if any paths are missing or phrasing risk is MEDIUM/HIGH (<80%)- 0/N paths found → distinct repo-mismatch warning instead of listing each path individually
GitHub Actions CI (plugin repo)
.github/workflows/validate-example.yml — validates the reference example
on every push/PR touching src/, examples/, tests/, pyproject.toml,
or the workflow file itself.
Wizard now offers CI setup (Question 6)
/oc-setup asks whether to generate .github/workflows/open-context-validate.yml
for the project repo. Uses --strict hardcoded. Wizard writes the file only —
user reviews and commits.
v0.1.5 — Token savings visible in UI
What's new
Token savings stats now appear as a native system notice in the Claude Code UI
(systemMessage) — visible to the user, not passed to the model.
Previously the stats were appended to additionalContext (invisible in UI).
Correct mechanism is the top-level systemMessage field which Claude Code
renders as a separate UI notice, distinct from the conversation.
Changes
resolve_hook.py— stats moved from additionalContext to systemMessagetests/— updated assertions to verify systemMessage field and confirm
stats do not bleed into additionalContext
v0.1.4 — Token savings stats
What's new
After each matched prompt, open-context now appends a token savings line
to the injected context:
[open-context] 91% token reduction (1.2 KB injected vs 14.8 KB full context)
The baseline is format_report() run across all domains (no threshold filter),
giving a concrete all-domain ceiling to compare against.
Stats are best-effort — a failure never breaks context injection.
Changes
resolver.py— newinclude_all_domainskeyword-only param onresolve()
for the baseline passresolve_hook.py— computes and appends savings stats after truncation- 5 new integration tests: presence, numeric sanity, no-match guard,
truncation survivability, superset contract
v0.1.3 — Add communication language to setup wizard
What's New
Added Question 2 — Communication language to the setup wizard (between Scope and Programming language). Claude switches to the chosen language immediately after Q2 and saves it as communication_language in settings.
Wizard is now 6 questions: Scope → Communication language → Programming language → Framework → Architecture → Actors.
v0.1.2 — Wizard triggers on first message after install
What's Fixed
Wizard now starts on first message after install — previously, the setup wizard only triggered at the next new session. Now the UserPromptSubmit hook detects first-run (no context.yaml, no settings) and injects the wizard trigger on the user's very first message — within the same session as install.
What's Changed
hook_utils.py— addedcontext_yaml_candidates(),is_first_run(), andWIZARD_TRIGGERas shared utilitiesresolve_hook.py— usescontext_yaml_candidates()(removes duplicated traversal logic) and injects wizard trigger on first-runsession_hook.py— refactored to use shared utilities; shrinks to ~10 lines of logic
Upgrade
claude plugin update open-context@open-contextv0.1.1 - Fix plugin load failure on install
Release notes:
What's Fixed
Plugin failed to load after install — Claude Code auto-loads hooks/hooks.json
from the plugin root. Having "hooks": "./hooks/hooks.json" in plugin.json
caused a duplicate-hook error on every install. Removed the redundant field.
This was the only blocker preventing the plugin from activating after marketplace install.
Upgrade
claude plugin update open-context@open-context
Or reinstall:
claude plugin uninstall open-context@open-context
claude plugin install open-context@open-context