Research hypothesis reflection
Skill Lx050/rubbing-to-knowledge/skills/research-hypothesis-reflection
书生国智科探挑战赛 · 赛道六 AI for Social Science · 古代碑帖与拓片 — 可复现证据链科研 Skill 系统:12 个离线、确定性、纯标准库 Skill(哑舍小分队 · 西北大学)
npx -y skills add Lx050/rubbing-to-knowledge --skill research-hypothesis-reflectionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 11 days oldThe repository was created 11 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Review a ResearchCase v1 after evidence or experiment feedback arrives. Use when a research workflow must detect supporting-versus-challenging evidence conflicts, negative/null/invalid results, dependent evidence, or stalled inquiry; preserve prior hypotheses in a versioned ReflectionMemo; and choose only continue, reroute, rollback, human_review, or stop_unresolved.
SKILL.md
5.0 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Research Hypothesis Reflection
Reflect on structured research state without rewriting the input case or hiding adverse results.
Contract identity:
skill_id:research-hypothesis-reflectionskill_version:1.2.0- ReflectionMemo schema:
1.1(references/reflection-memo-v1.1.schema.json) - Frozen predecessor: memo schema
1.0from Skill1.0.0/1.1.0(references/reflection-memo-v1.0.schema.json); documents written under it keep validating unchanged.
Run
Use Python 3 and the standard library:
python3 scripts/reflect.py \
--case /path/to/research-case.json \
--output-dir /path/to/reflections \
--write-updated-case
The command creates CASE--reflection-vNNN.json and, when requested, CASE--case-after-reflection-vNNN.json. It selects the next unused revision and refuses to overwrite either the input or an existing output.
Workflow
- Validate the required ResearchCase v1 structure.
- Link feedback and experiments through hypothesis, evidence, and experiment IDs.
- Detect support/challenge conflicts, negative/null/invalid outcomes, missing or unusable evidence, non-independent positive support, and repeated no-information outcomes.
- Select an action with deterministic priority: conflict →
human_review; invalid method →rollback; exhausted evidence →stop_unresolved; negative/dependent/stalled evidence →reroute; otherwise →continue. - Store every original hypothesis as
before_snapshotin the memo. - Propose revisions separately. Increment a hypothesis revision only when its state or confidence changes.
- Optionally write a deep-copied ResearchCase with the proposals, a new decision, and an orchestrator-compatible
extensions.latest_decision_statemarker. Never overwrite the source case.
Interpretation rules
- Treat evidence as usable only when it is not
HYP, is not rejected, and is machine-checked, human-checked, or explicitly conflicted. - Count independence by distinct
independence_group, not evidence-row count. - When feedback targets a completed experiment and repeats that experiment's outcome, treat it as the experiment result's report and count the outcome once. Continue to count feedback that is independent of the experiment.
- Do not upgrade a hypothesis from positive feedback supported by fewer than two independent groups.
- Treat
nullas inconclusive andinvalidas a method failure, not evidence against the hypothesis. - Preserve missing references and rejected evidence as warnings; never silently drop them.
- Restrict actions to
continue,reroute,rollback,human_review, andstop_unresolved. - Never stop without saying what could come next. When a hypothesis has no
usable supporting and no usable challenging evidence, record
proposed_next_actions: a literature lookup naming the unadjudicated Han character candidates found in usable, non-HYPevidence (or the open question when there are none), and, while a raw image material is still registered, a wider re-derivation of the observed region. - Every proposed action carries
authorization: proposal-only. A memo names work for a human to choose; it never authorizes execution, changes a hypothesis, or relaxes a gate. Only an orchestrator route may make a Skill executable, and it refuses to while a gate blocks.
Outputs
The ReflectionMemo contains skill_id, skill_version, a unique per-invocation run_id, its schema version, case ID, revision, timestamp, input SHA-256, feedback counts, triggered rules, evidence-independence summaries, complete before/after hypothesis snapshots, action, rationale, proposed_next_actions, and an input-preservation statement. The CLI summary repeats the same three invocation fields.
When --write-updated-case is used, the updated case retains the appended decision and records extensions.latest_decision_state with:
decision_idfor the latest decision.decision_sha256, computed from that decision as sorted, indented UTF-8 JSON with a trailing newline.input_case_sha256, bound to the original input file bytes.activated_at, equal to the updated case'supdated_at.collection_countsfor the updatedmaterials,hypotheses,experiments,evidence,claims,uncertainties,feedback, anddecisionsarrays.
The marker is fresh only while its activation time and all collection counts still match the case. Existing extension fields are preserved. A human_review decision remains appended with gate_status: block; the marker does not bypass that gate.
Run tests with:
python3 -m unittest discover -s tests -v