本文へ移動
cccskills
無料GitHub で公開

research-methods

Choose the design and the numbers a research run can honestly claim — write the structured METHOD RECORD (databases, date of access, search string, criteria, screening counts) that r0 validates, pick the claim strength a design can actually carry, record a statistic as data rather than prose, route to the reporting guideline the design owes, and decide what to preregister. Use when a run's question, design, search or statistics have to be settled before the writing, or when a claim needs a strength or a number attached to it.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md11.0 KB
  • reference/method.md28.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Method before sentence

A document is only as good as the design under it, and two failures are cheap to prevent and expensive to discover:

  • a claim that says more than its design can support — causes over a correlation, proves over one study, significant with no effect size;
  • a search nobody can repeat — "we searched the literature" is not a method, and a review whose search cannot be repeated cannot be checked by anyone, including its author a year later.

This skill is the method layer. It does not read your statistics for you and it does not infer a design from keywords. What it does is make both of those things data on the record, where a check can reach them.

The dense content — the design catalogue, the validity threats, the statistics reporting bar, the guideline routing table, the ethics and authorship ground — is in reference/method.md beside this file. Read it when the question is what does this design let me say, and read the worked example below when the question is what do I call right now.

The method record: a search as data

plan/method.md is prose. plan/method.json is the record, and it is the one r0 validates and the build prints back as the document's own search-and-screening flow. Six fields, all required:

rs_plan slug=sleep-memory-review part=method method={
  "databases": ["PubMed", "Web of Science Core Collection", "PsycINFO"],
  "accessed": "2026-10-13",
  "search": "(\"sleep deprivation\" OR \"sleep restriction\") AND (\"memory consolidation\" OR recall) AND (adult OR human)",
  "include": ["adult human samples", "a sleep-deprivation or sleep-restriction manipulation", "a memory measure reported with a statistic"],
  "exclude": ["animal-only studies", "pharmacological sleep aids", "no memory outcome"],
  "screening": { "identified": 412, "screened": 96, "included": 23 }
}
plan/method.json written, and plan/method.md regenerated from it
- path: C:\Users\ana\Desktop\vncode-research\sleep-memory-review\plan\method.json
- 3 database(s), accessed 2026-10-13, 412 identified -> 96 screened -> 23 included

The record is what r0 validates and what the document's search-and-screening flow is printed from. Edit the RECORD, not plan/method.md: the next write replaces the view.

The counts are checked, and that is the point of the record. Records are removed at each step, never added, so identified >= screened >= included must hold. It is the one arithmetic a review can lie to itself with and not notice:

Refused (METHOD_COUNTS): the screening counts cannot be true: identified=96, screened=412, included=23 - records are removed at each step, never added, so identified >= screened >= included. Fix the record (or the review) rather than the arithmetic.

Three more rules the record enforces rather than trusts:

  • accessed is a real calendar date. 2026-02-31 matches the shape and cannot be true; a date a reader cannot trust is worse than none.
  • The fields are closed. databases, accessed, search, include, exclude, screening — plus optional registration, platforms, notes. A field this package does not read is a field nothing validates.
  • An empty exclude is legitimate; a missing one is not. "Nothing was excluded" and "nobody said" are different statements, and only one of them is a method.

registration is where a preregistration ID goes (PROSPERO, OSF, INPLASY, ClinicalTrials.gov, AsPredicted), and a review that has none is making a choice worth recording rather than a gap worth hiding — see the reference for what to register and when.

A record is validated on the way in by rs_plan and again on the way out by r0-structure, which reports what it finds on disk as a problem rather than believing it:

codeseveritywhat it means
method-incompletewarninga field a reader needs is missing or empty — a hand-edited record, or one another version wrote
method-countserrorthe counts contradict each other; a clean build refuses on it
method-datewarningaccessed is not a real YYYY-MM-DD date

What the design lets you say

strength is already on every claim (rs_write), and this is the table that decides it. Pick the verb the design can carry, not the one that reads better — a causal claim over a correlational source is a defect of the sentence, fixed by rewriting the sentence, not by re-labelling it.

the designwhat it can supporthonest strength
randomised experiment, allocation concealeda difference caused by the manipulationcausal
quasi-experiment with a credible counterfactual (difference-in-differences, regression discontinuity, IV)a causal effect under stated assumptions — name themcausal, with the assumptions written down
cohort / case-control / cross-sectionalan association, adjusted for what was measuredassociational
single-group pre-postchange over time, not the cause of itassociational at most
qualitative (interviews, ethnography, case study)meaning, mechanism, experience — not prevalencedescriptive or theoretical
a model, a derivation, an argumentwhat follows if the premises holdtheoretical
a recommendationwhat ought to be done, which no datum settlesnormative

Two rules that come from the table and are the ones an agent gets wrong:

  • p < .05 on a cross-sectional study is not a causal claim. The design cannot carry the verb, whatever the p-value says.
  • descriptive is not the weak option. "412 records were identified" is a descriptive claim and it is exactly the right label for it. Reaching for associational because it sounds stronger is how a number becomes an overstatement.

A number is data, not prose

A claim that rests on a statistic takes a statistic object, recorded on the claim row:

rs_write slug=sleep-memory-review section=memory
  text="Sleep restriction reduced next-day recall relative to the control condition [@walker2020cognitive]. [Recall was lower after restriction than after a full night of sleep]{#c0142} [@walker2020cognitive, p. 7]."
  claims=[{ "id": "c0142", "strength": "causal",
    "statistic": { "test": "Welch t-test", "statistic": "t = 2.41", "df": "38.2", "p": ".032", "effect": "d = 0.61", "ci": [0.12, 1.10], "n": 40 },
    "sources": [{ "key": "walker2020cognitive",
      "locator": { "kind": "quote", "quote": "sleep-dependent consolidation of declarative memory" } }] }]
doc/sections/memory.md written (replace)
- path: C:\Users\ana\Desktop\vncode-research\sleep-memory-review\doc\sections\memory.md
- words: 34
- claims in this text: 1 (1 new)
- citations: walker2020cognitive
- statistics recorded: c0142 (Welch t-test, t = 2.41, df 38.2, p .032, effect size d = 0.61, 95% CI .12 to 1.1, n 40)

Seven fields, closed: test, statistic, df, p, effect, ci, n. What they are for is that the build prints them — format=md (and docx, html, tex, from the same Markdown) carries a Statistics table in a draft naming each claim and its numbers, and in a clean build naming each sentence and its numbers, because a finished document must not cite ids that appear nowhere in it.

Three refusals, each a reporting standard rather than a preference:

  • p = .000 is refused. No test produces a probability of exactly zero; it is what a program prints after rounding, and copying it into a paper reports a number that cannot exist. Write p < .001.
  • A field with no numeral is refused ("effect": "large"): a label is not a measurement. Write d = 0.61 and let a reader disagree with the threshold.
  • A field nothing reads is refused, like everywhere else in this dialect: a number nothing checks is a number nothing checks.

Changing a statistic clears the claim's verification, exactly as changing words does. A verdict says "this passage supports what this claim asserts", and p = .032 is part of what it asserts — a check made about the old number is a check about a claim that no longer exists. rs_write names every claim it cleared, and you say so to the user in the same turn.

The guideline the design owes

Before a document leaves the run, name the reporting guideline its design owes and say which items it cannot yet satisfy. Route by design, never by keyword: "trial" in a title does not make a study an RCT.

the study isthe guideline
a randomised trialCONSORT
a trial protocolSPIRIT
an observational study (cohort, case-control, cross-sectional)STROBE
a systematic reviewPRISMA 2020
a review protocolPRISMA-P
a diagnostic-accuracy studySTARD
a prediction modelTRIPOD
a qualitative study (interviews, focus groups)COREQ, or SRQR
a case reportCARE
a quality-improvement studySQUIRE 2.0
an economic evaluationCHEERS
an animal studyARRIVE
a practice guidelineAGREE II

The full table, what each one covers, and how to handle a study that straddles two, is in the reference. The rule that matters here: a guideline you cannot satisfy is a sentence in Limitations, not a silence. An unmet item reported is a defect a reader can weigh; an unmet item omitted is a defect they cannot see.

What this skill refuses to do

  • It does not infer a design from keywords, and neither should you: a guideline chosen by a title's wording is a checklist applied to the wrong study.
  • It does not recompute statistics. Nothing in this package calculates a p-value from a test statistic or checks that d = 0.61 follows from the means it was given. The numbers are recorded, printed and checkable by a reader — and saying that plainly is worth more than a recomputation that pretends to be arithmetic truth.
  • It does not decide ethics for you. Consent, approval and data-protection obligations are an institution's determination, not a plugin's: the reference says what to collect and who has to decide.
  • No record is not a failure. A theoretical paper has no search. The build reports no plan/method.json as a note rather than refusing, because inventing a requirement is not the same as enforcing one.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Author an editorial HTML+SVG diagram with the Diagram Design kit - choose the visual type, read its reference, start from an example, and satisfy the safety and accessibility contract that diagram_write({kind:"html"}) enforces.

日本語の概要は準備中です。原文の説明を表示しています。

vecnode/vncode82026年10月13日 更新

Drive ffmpeg through the media_run tool as an argv array - remux instead of re-encode, map streams explicitly, trim at keyframes, scale and crop, extract audio and frames, and build GIFs, contact sheets and concatenations. Covers the flags this pack injects, reading a failure from its exit code and last log lines, and the version-dependent spellings to hedge.

日本語の概要は準備中です。原文の説明を表示しています。

vecnode/vncode82026年10月13日 更新

Read a media file's real structure with ffprobe through media_run - the JSON invocation and how to read it, what every family of field means, how to count frames, sample without decoding everything, detect HDR and interlacing, and diagnose a missing duration, a stream with no frames or a container that lies. Covers when media_probe's own report is already enough.

日本語の概要は準備中です。原文の説明を表示しています。

vecnode/vncode82026年10月13日 更新

Author Mermaid diagrams that parse the first time: choose the right diagram type for the question, write syntax the parser accepts, and keep the picture readable in a narrow panel. A bundled reference covers complex, large diagrams.

日本語の概要は準備中です。原文の説明を表示しています。

vecnode/vncode82026年10月13日 更新

Write openFrameworks prototypes into the lab — real C++ (ofApp.h, ofApp.cpp, main.cpp) that builds into an app with the projectGenerator and make. Use for native/desktop sketches, performance-sensitive work, OpenGL, audio input, sensors, anything that has to be an application rather than a page.

日本語の概要は準備中です。原文の説明を表示しています。

vecnode/vncode82026年10月13日 更新

Write p5.js prototypes into the lab — sketches that actually run in a browser, seed-reproducible, with controls generated from the sketch's own parameters. Use for generative art, flow fields, particle systems, noise, animation, anything sketched visually in the browser.

日本語の概要は準備中です。原文の説明を表示しています。

vecnode/vncode82026年10月13日 更新

vecnode のスキルをすべて見る

このスキルの問題を報告する