跳到正文
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(原文)

安装前可以查看交给 AI 代理的指令内容。

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.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

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/vn-code102026年10月20日 更新

Control this machine's Docker or Podman engine through the docker_* tools - read the engine's state first, list containers and images, inspect one, tail its logs, pull an image and start it, then stop, restart or remove what you started. Covers the engine that is asleep behind Docker Desktop and the exact call for each verb, the confirm rule removals obey, and the flags the tools deliberately do not have.

中文简介正在准备中。当前显示原文说明。

vecnode/vn-code102026年10月20日 更新

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/vn-code102026年10月20日 更新

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/vn-code102026年10月20日 更新

Use when the user wants to design, redesign, shape, critique, audit, polish, simplify, harden, animate, or otherwise improve a frontend interface: websites, landing pages, dashboards, product UI, components, forms, settings, onboarding, empty states, and native iOS or Android screens. Handles UX review, hierarchy, layout, typography, color, motion, UX copy, accessibility, responsive behavior, edge cases, and capturing or documenting design systems (DESIGN.md, tokens). Also for making bland UI bolder, loud UI quieter, or ambitious visual effects. Not for backend-only or non-UI tasks.

中文简介正在准备中。当前显示原文说明。

vecnode/vn-code102026年10月20日 更新

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/vn-code102026年10月20日 更新

查看 vecnode 的全部技能

报告此技能的问题