Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Map open problems where this repo can advance SOTA. Use when scoping research. Do not use to run the campaign; use night-market-completion-integrity-campaign.
.claude/skills/athola-night-market-research-frontier/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 279% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 228% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 117% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 113% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 240% | 0% |
This file lists the open problems where this repository holds assets that the published state of the art does not. SOTA (state of the art) here means the best result shipped or published anywhere, not the best result in this repo. Every entry is a candidate. Nothing below is a claimed capability, and citing this file as evidence that a capability exists is an error.
Read this skill when choosing what research bet to place next, when framing an experiment, or when someone asks "what could this project contribute beyond itself?"
Follow these before starting any problem below.
repo evidence bar: one mechanism must explain all observations including negatives, the hypothesis must predict numbers before the run, and the generator is never its own judge. The pipeline from hunch to accepted result is night-market-research-methodology.
change (night-market-change-control). This skill authorizes no shortcuts.
in docs/research/, update the changelog, and remove or re-scope the entry here. A frontier list that never shrinks is a wish list.
| # | Problem | Primary repo asset | Status | |---|---------|--------------------|--------| | 1 | Completion integrity in autonomous loops | egregore gate + herald judge + imbue verifier-integrity | Open, active campaign | | 2 | Skill-graph governance at scale | forced-eval activation harness + ratchets | Open | | 3 | Collective memory across context resets | ADR-0007 Discussions + memory-palace | Open, partially blocked | | 4 | Insight-palace bridge under a hook budget | Draft spec v0.1.0 + hook infrastructure | Open, spec drafted | | 5 | Behavioral contract attestation | ADR-0008 SLSA path + trust workflow | Open |
Autonomous agents self-report "done." The evidence is inlined here and in the two docs of record it was folded into (.claude/rules/prefer-invariants-over-fallbacks.md for the harness-loop findings, plugins/imbue/skills/proof-of-work/modules/verifier-integrity.md for the verifier findings): the METR randomized trial (arXiv 2507.09089) found experienced developers 19% slower with AI while believing they were faster, so self-assessment of completion is miscalibrated even for humans in the loop. On the verifier side, a green check proves spec-satisfaction, not correctness: the spec can be wrong, or the check can be hollow (a test that passes no matter what the code does). An agent that judges its own work optimizes the judge, not the work. No published harness binds "done" to gates the agent cannot fake.
Three shipped, tested mechanisms that most agent frameworks lack:
completion_integrity: bool = False in plugins/egregore/scripts/config.py (commit 83281337, default off). When true, a "fix-required" quality verdict blocks the ship step and merge is held for human review regardless of auto_merge. The raw-JSON opt-in path is covered by tests (commit cd903cbf).
plugins/herald/hooks/double_shot_latte.py. Deterministic verdict by default. An optional LLM second shot fires only on the single ambiguous outcome and is capped at LLM_TIMEOUT_SECONDS = 8 inside the 10s registered hook budget (commits 3d22f02a, 268cff89).
plugins/imbue/skills/proof-of-work/modules/verifier-integrity.md (commit 29081fda): proves the check was worth passing, distinct from proving it passed.
night-market-completion-integrity-campaign. That skill owns the campaign. This entry only frames the research question.
completion_integrity: true) and again with it off, on the same work items. Log every quality verdict.
gated loop held as fix-required, adjudicated by a human.
A measured false-done rate delta between gated and ungated runs on the same work items exists, with the human adjudication recorded, and the delta survives a second run. If the delta is zero or the gate holds only items a human calls genuinely done, the gate as designed is falsified: record that too. The promotion question (default-off to default-on) is open until this number exists.
This repo carries 197 registered skills (198 SKILL.md files on disk, find count 2026-07-02) against a finite skill discovery budget of about 16K characters. Skills past the budget are dropped silently (docs/quality-gates.md, Follow-on work section). The activation layer does near-keyword matching, so relevant skills fail to fire (prototypes/forced-eval/README.md). No one, here or elsewhere, has published a principled activation-quality metric: a way to say "this skill library activates the right skill X% of the time, and change Y moved that number."
prototypes/forced-eval/measure_activation.py (commit 5683e89b). It runs labeled prompts through claude -p with and without a forced-eval hook, counts expected Skill() events, tracks false activations on true-negative cases, and applies a paired McNemar significance test. The dataset (prototypes/forced-eval/activation_cases.json) is deliberately small. The README says to expand it before trusting the rates.
scripts/check_skill_graph_drift.py (dangling Skill() refs) and scripts/check_skill_exit_criteria_drift.py.
docs/skill-integration-guide.md.
and the issue #574 backlog: 9 pensive review-named skills, of which at least 5 repeat the same "Approve / Approve with actions / Block" verdict scaffold (rg -l "Approve with actions" plugins/pensive/skills/*/SKILL.md matches 7 files, 2026-07-02).
prototypes/forced-eval/activation_cases.json with labeledpositive and true-negative prompts for the pensive review skills.
bash cd prototypes/forced-eval uv run python measure_activation.py # dry run, spends nothing uv run python measure_activation.py --live \ --root "$PWD/../../plugins/pensive" --repeats 3
pensive:shell-review and pensive:makefile-reviewinto pensive:unified-review as modules (issue #574 item 1, one PR per skill, thin command alias stubs kept), then re-run step 2.
A measured activation-lift delta exists for the pensive consolidation: activation rate on the labeled set before versus after, with McNemar significance, plus the discovery-budget character count saved. A result where consolidation saves budget without degrading activation is publishable. A result where activation drops is the falsification and blocks further consolidation. Candidate follow-on, unproven: turn the harness into a CI gate for any skill-count change.
Published agent-memory work centers on single-agent vector stores. Retrieval precision is rarely measured, and nothing binds memory to a team of agents whose contexts reset constantly. The failure mode is documented in this repo's own history: the abstract Stop hook that posts daily Learning] digests read env vars Claude Code never sets and was a silent no-op for months (fixed in 1.9.14 via the shared stdin-first payload reader). Memory systems fail silently, and nobody notices until the knowledge is needed.
distributed plugin hooks through leyline GraphQL wrappers. The gh discussion subcommand does not exist, so all access is gh api graphql.
plugins/memory-palace/skills/knowledge-intake/modules/discussion-promotion.md routes reviewed Discussions knowledge into palace storage.
plugins/memory-palace/skills/memory-clarity-probe/SKILL.md: dualanchor questions probing whether a summary preserves task progress and information gaps across a handoff.
plugins/abstract/hooks/post_learnings_stop.py.
logprob access (issue #553, open as of 2026-07-02).
and Knowledge] discussions via gh api graphql, and for each write 1 to 2 queries a future session would plausibly ask.
memory-palace:knowledge-locator precision and recallagainst that set. Record the numbers in a dated docs/research/ synthesis.
is retrieved within 30 days, versus knowledge left in Discussions.
Precision and recall numbers exist for a labeled query set, and one curation change (for example, promoting versus not promoting a batch) produces a predicted, then measured, retrieval delta. Issue #553 unblocks a stronger result (an RL-trained clarity probe), but the retrieval measurement does not wait on it.
Plugin ecosystems either share a runtime registry (tight coupling) or do not exchange data at all. ADR-0001 forbids a shared registry here: plugins detect each other via the filesystem and degrade gracefully. Moving structured findings between two isolated plugins inside a Stop hook's hard latency budget, with graceful failure when the peer plugin is absent, is an unsolved composition problem, and hook-budget overruns are a known repo failure class (herald's LLM timeout once exceeded its registered budget and the harness killed the hook with no verdict at all).
A drafted, unimplemented specification: docs/specification.md (Insight-Palace Bridge, v0.1.0, Draft, 2026-04-13), with docs/project-brief.md and docs/implementation-plan.md. Key verified constraints:
_BUDGET_SECONDS = 8.5 inplugins/abstract/hooks/post_learnings_stop.py, leaving headroom inside the 10s hook timeout.
1s remains. AC-3.4: it never raises to the caller.
(_HAS_INSIGHT_ENGINE): with memory-palace or the insight engine missing, the bridge silently does nothing.
Caution: the brief, specification, and implementation plan under docs/ are overwritten per feature cycle. Confirm the spec on disk is still the insight-palace bridge before building against it.
docs/specification.md and docs/implementation-plan.md endto end, and confirm the Draft status and version are unchanged.
_HAS_INSIGHT_ENGINE guard and the remaining-budget check, tests first (Iron Law applies).
test proving the ImportError path is a silent no-op, using a sys.meta_path import blocker as the existing hook regression tests do.
The bridge is merged with both tests green, a benchmark artifact shows 10-finding ingestion under 500ms on CI hardware, and the spec's status line moves from Draft. Falsification: if the 500ms budget cannot be met without dropping findings, that is a spec revision, not a reason to remove the budget check.
Supply-chain attestation (SLSA provenance, signed via Sigstore) proves which bytes came from which workflow. It does not prove what the artifact does. ADR-0008 states the gap directly: there is no mechanism to prove that a plugin's behavioral contract holds. A marketplace can today verify a plugin is unmodified and still ship a plugin whose hooks do something other than what its README claims. SLSA is the state of the art for artifacts. Behavior verification has no SOTA to beat, only a vacancy.
blockchain path was dropped for cost in favor of GitHub Attestations/SLSA).
.github/workflows/trust-attestation.ymlruns make test on master pushes and produces a signed SLSA attestation of trust-report.json.
leyline:verify-plugin command(plugins/leyline/commands/verify-plugin.md) checks a plugin's attestation history.
trust-report.json would need to assert for behavior,not provenance: candidate schema is per-hook contract tests (input payload, expected verdict/exit) whose pass results are attested.
hook (herald's Stop-hook judge is the best-instrumented candidate) and attest it through the existing workflow.
leyline:verify-plugin to compare the attested behavioralclaims against the plugin currently on disk and flag divergence.
leyline:verify-plugin distinguishes, in a test, a plugin whose attested behavior diverged from an unmodified one. Candidate and unproven beyond that: whether behavioral attestation generalizes past hooks (skills and agents are prose, with no test harness for their behavior yet). Label any generalization claim open until one exists.
Inferred from the project's own research docs, and labeled as inference: the ambition is harness-level guardrails that keep autonomous loops honest and legible. The five problems above are one thread: gates the agent cannot fake (1), a skill library whose activation is measured rather than hoped (2), memory that survives resets and proves its retrieval (3), cross-plugin composition under hard budgets (4), and trust signals that cover behavior, not bytes (5). Advancing any one of them past its milestone is a contribution the wider agent-tooling field does not yet have.
night-market-completion-integrity-campaign, which owns the runnable plan. This entry only frames the research question.
night-market-research-methodology.
night-market-failure-archaeology. Do not reopen settled battles as "research."
night-market-architecture-contract.
first three steps were either started as written or a documented deviation exists in the work log or PR description.
and shows the milestone's check passing (numbers, test output, or merged artifact).
capability, and every borrowed claim kept its open/candidate label.
first for plugin Python, pre-commit clean, no bypass flags).
docs/research/ and this file's entry was updated or removed.
Compiled 2026-07-02 against repo v1.9.15 (branch discussions-fix-1.9.14). Volatile facts and how to re-verify them:
find plugins -name SKILL.md | wc -l
rg -n "completion_integrity" plugins/egregore/scripts/config.py
rg -n "LLM_TIMEOUT_SECONDS" plugins/herald/hooks/double_shot_latte.py
head -5 docs/specification.md
rg -n "_BUDGET_SECONDS" plugins/abstract/hooks/post_learnings_stop.py
gh issue view 574 --json state -q .state (same for 553)
rg -l "Approve with actions" plugins/pensive/skills/*/SKILL.md | wc -l
rg -n "16K characters" docs/quality-gates.md
5683e89b. Re-verify with git log --oneline -1 <hash>.
Unverified in this compilation: the exact 16K-character discovery budget figure is the repo's own estimate ("about 16K characters" in docs/quality-gates.md), not an upstream-documented limit. The claim that no published activation-quality metric exists is a literature-absence claim as of 2026-07-02. Re-check before publishing externally.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | pass→pass | 22,944 | 19,704 | -14% | 1 | 1 | 0% | 3,468 | 7,923 | +128% | 0 | 0 | — |
case-01 | pass→fail | 14,603 | 8,918 | -39% | 1 | 1 | 0% | 2,077 | 5,373 | +159% | 0 | 0 | — |
case-02 | pass→pass | 18,795 | 22,930 | +22% | 1 | 1 | 0% | 2,924 | 8,915 | +205% | 0 | 0 | — |
case-04 | fail→fail | 13,990 | 13,860 | -1% | 1 | 1 | 0% | 2,251 | 6,702 | +198% | 0 | 0 | — |
case-05 | fail→fail | 15,146 | 3,906 | -74% | 1 | 1 | 0% | 2,255 | 5,180 | +130% | 0 | 0 | — |
case-06 | fail→fail | 12,912 | 3,440 | -73% | 1 | 1 | 0% | 2,064 | 5,279 | +156% | 0 | 0 | — |
case-07 | fail→pass | 8,974 | 7,521 | -16% | 1 | 1 | 0% | 1,590 | 6,033 | +279% | 0 | 0 | — |
case-08 | fail→pass | 12,489 | 5,236 | -58% | 1 | 1 | 0% | 1,729 | 5,675 | +228% | 0 | 0 | — |
case-13 | fail→pass | 16,940 | 6,861 | -59% | 1 | 1 | 0% | 2,667 | 5,795 | +117% | 0 | 0 | — |
case-09 | fail→pass | 15,672 | 2,639 | -83% | 1 | 1 | 0% | 2,414 | 5,153 | +113% | 0 | 0 | — |
case-10 | fail→pass | 32,464 | 6,171 | -81% | 1 | 1 | 0% | 1,656 | 5,629 | +240% | 0 | 0 | — |
case-11 | fail→pass | 14,620 | 3,612 | -75% | 1 | 1 | 0% | 2,672 | 5,245 | +96% | 0 | 0 | — |
case-12 | fail→pass | 16,245 | 10,279 | -37% | 1 | 1 | 0% | 2,487 | 6,597 | +165% | 0 | 0 | — |
case-14 | fail→fail | 8,866 | 2,822 | -68% | 1 | 1 | 0% | 1,082 | 5,173 | +378% | 0 | 0 | — |
case-15 | fail→pass | 71,628 | 3,353 | -95% | 1 | 1 | 0% | 579 | 5,243 | +806% | 0 | 0 | — |
case-16 | fail→pass | 9,025 | 4,990 | -45% | 1 | 1 | 0% | 1,291 | 5,543 | +329% | 0 | 0 | — |
case-17 | fail→pass | 11,749 | 4,121 | -65% | 1 | 1 | 0% | 1,619 | 5,442 | +236% | 0 | 0 | — |
case-18 | fail→pass | 13,592 | 2,365 | -83% | 1 | 1 | 0% | 2,551 | 5,165 | +102% | 0 | 0 | — |
case-19 | fail→pass | 7,319 | 5,245 | -28% | 1 | 1 | 0% | 1,017 | 5,190 | +410% | 0 | 0 | — |
case-20 | fail→pass | 9,005 | 2,719 | -70% | 1 | 1 | 0% | 1,403 | 5,173 | +269% | 0 | 0 | — |
case-21 | fail→pass | 20,813 | 3,203 | -85% | 1 | 1 | 0% | 1,336 | 5,243 | +292% | 0 | 0 | — |
case-22 | fail→pass | 13,779 | 7,336 | -47% | 1 | 1 | 0% | 2,062 | 5,779 | +180% | 0 | 0 | — |
case-23 | fail→pass | 13,569 | 4,354 | -68% | 1 | 1 | 0% | 1,983 | 5,480 | +176% | 0 | 0 | — |
case-24 | fail→pass | 13,298 | 2,234 | -83% | 1 | 1 | 0% | 1,817 | 5,033 | +177% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 21 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +67 percentage points is the difference between those two pass rates over the 21 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.