create-academic-research 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +160 -0
- package/SECURITY.md +8 -0
- package/dist/bin/academic-research.d.ts +2 -0
- package/dist/bin/academic-research.js +3 -0
- package/dist/bin/create-academic-research.d.ts +2 -0
- package/dist/bin/create-academic-research.js +3 -0
- package/dist/src/capabilities.d.ts +54 -0
- package/dist/src/capabilities.js +487 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.js +451 -0
- package/dist/src/files.d.ts +8 -0
- package/dist/src/files.js +44 -0
- package/dist/src/names.d.ts +3 -0
- package/dist/src/names.js +64 -0
- package/dist/src/project.d.ts +28 -0
- package/dist/src/project.js +229 -0
- package/dist/src/prompts.d.ts +18 -0
- package/dist/src/prompts.js +29 -0
- package/dist/src/runner.d.ts +12 -0
- package/dist/src/runner.js +22 -0
- package/dist/src/stack.d.ts +30 -0
- package/dist/src/stack.js +180 -0
- package/package.json +59 -0
- package/template/AGENTS.md +47 -0
- package/template/README.md +68 -0
- package/template/analysis_outputs/.gitkeep +0 -0
- package/template/artifacts/artifact-checklist.md +7 -0
- package/template/artifacts/cache/.gitkeep +0 -0
- package/template/artifacts/data/.gitkeep +0 -0
- package/template/artifacts/models/.gitkeep +0 -0
- package/template/artifacts/releases/.gitkeep +0 -0
- package/template/configs/agent-stack.yaml +5 -0
- package/template/configs/capabilities.yaml +4 -0
- package/template/configs/default.yaml +15 -0
- package/template/data/external/.gitkeep +0 -0
- package/template/data/interim/.gitkeep +0 -0
- package/template/data/processed/.gitkeep +0 -0
- package/template/data/raw/.gitkeep +0 -0
- package/template/debug_outputs/.gitkeep +0 -0
- package/template/docs/agent/capability-profile.md +6 -0
- package/template/docs/agent/mcp-setup.md +4 -0
- package/template/docs/agent/output-contracts.md +8 -0
- package/template/docs/agent/research-program.md +3 -0
- package/template/docs/data_dictionary/README.md +3 -0
- package/template/docs/ethics/data-governance.md +3 -0
- package/template/docs/methodology/evaluation-plan.md +3 -0
- package/template/docs/methodology/research-design.md +4 -0
- package/template/docs/methodology/threats-to-validity.md +3 -0
- package/template/docs/reproducibility/README.md +3 -0
- package/template/docs/venue/venue-strategy.md +3 -0
- package/template/experiments/registry.csv +1 -0
- package/template/experiments/templates/experiment-record.md +23 -0
- package/template/explore_outputs/.gitkeep +0 -0
- package/template/notebooks/README.md +5 -0
- package/template/outputs/figures/.gitkeep +0 -0
- package/template/outputs/models/.gitkeep +0 -0
- package/template/outputs/tables/.gitkeep +0 -0
- package/template/package.json +17 -0
- package/template/pyproject.toml +41 -0
- package/template/reports/paper/.gitkeep +0 -0
- package/template/reports/proposal/.gitkeep +0 -0
- package/template/reports/rebuttal/README.md +3 -0
- package/template/reports/reviews/README.md +3 -0
- package/template/reports/slides/.gitkeep +0 -0
- package/template/repro_outputs/.gitkeep +0 -0
- package/template/sota/gaps.md +9 -0
- package/template/sota/literature-matrix.csv +1 -0
- package/template/sota/prisma-flow.md +4 -0
- package/template/sota/screening-decisions.csv +1 -0
- package/template/sota/search-strategy.md +14 -0
- package/template/sota/synthesis.md +9 -0
- package/template/sources/assets/.gitkeep +0 -0
- package/template/sources/bib/citation-audit.csv +1 -0
- package/template/sources/bib/references.bib +1 -0
- package/template/sources/conversion-ledger.csv +1 -0
- package/template/sources/markdown/.gitkeep +0 -0
- package/template/sources/metadata/.gitkeep +0 -0
- package/template/sources/pdfs/.gitkeep +0 -0
- package/template/sources/source-ledger.csv +1 -0
- package/template/src/project_package/__init__.py +1 -0
- package/template/tests/test_project_structure.py +25 -0
- package/template/train_outputs/.gitkeep +0 -0
- package/template/wiki/claims/.gitkeep +0 -0
- package/template/wiki/concepts/.gitkeep +0 -0
- package/template/wiki/contradictions.md +3 -0
- package/template/wiki/decisions/.gitkeep +0 -0
- package/template/wiki/experiments/.gitkeep +0 -0
- package/template/wiki/index.md +9 -0
- package/template/wiki/log.md +1 -0
- package/template/wiki/methods/.gitkeep +0 -0
- package/template/wiki/open_questions.md +3 -0
- package/template/wiki/questions/.gitkeep +0 -0
- package/template/wiki/sources/.gitkeep +0 -0
- package/template/wiki/synthesis.md +3 -0
- package/template/wiki/templates/.gitkeep +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Academic Research Project
|
|
2
|
+
|
|
3
|
+
This repository is an academic research project created with
|
|
4
|
+
`create-academic-research`.
|
|
5
|
+
|
|
6
|
+
The repository is structured for reproducibility, scholarly evidence tracking,
|
|
7
|
+
and LLM-assisted research work. Notebooks are allowed for exploration and final
|
|
8
|
+
narrative analysis, but repeatable logic belongs in `src/`, `scripts/`, and
|
|
9
|
+
tested project code.
|
|
10
|
+
|
|
11
|
+
## Discipline Scope
|
|
12
|
+
|
|
13
|
+
This template is discipline-general. Use it for academic research projects in
|
|
14
|
+
any field, then specialize the methods, evidence standards, and venues for the
|
|
15
|
+
actual discipline. The companion `academic-research-skills` package gives
|
|
16
|
+
first-class support to computer science research while keeping the repository
|
|
17
|
+
structure useful for broader academic work.
|
|
18
|
+
|
|
19
|
+
The repository is agent-neutral. Capability state uses `agent: auto` unless a
|
|
20
|
+
specific agent target is selected with `--agent`.
|
|
21
|
+
|
|
22
|
+
## Quickstart
|
|
23
|
+
|
|
24
|
+
Use Python 3.11 or newer.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install
|
|
28
|
+
python3.11 -m venv .venv
|
|
29
|
+
source .venv/bin/activate
|
|
30
|
+
python -m pip install --upgrade pip
|
|
31
|
+
python -m pip install -e ".[dev]"
|
|
32
|
+
npx academic-research doctor
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Core Folders
|
|
36
|
+
|
|
37
|
+
- `sources/`: curated papers, reports, metadata, BibTeX, and conversion ledgers.
|
|
38
|
+
- `sota/`: search strategy, screening, literature matrix, synthesis, and gaps.
|
|
39
|
+
- `wiki/`: LLM-maintained durable research memory.
|
|
40
|
+
- `docs/agent/`: active agent workflows, capability profile, and MCP setup.
|
|
41
|
+
- `docs/methodology/`: research design, evaluation plan, and validity threats.
|
|
42
|
+
- `experiments/`: curated experiment registry and run records.
|
|
43
|
+
- `notebooks/`: optional exploratory and narrative notebooks.
|
|
44
|
+
- `outputs/`: final figures, tables, models, and paper-supporting derived assets.
|
|
45
|
+
- `reports/`: proposal, paper, slides, reviews, and rebuttal material.
|
|
46
|
+
- `artifacts/`: open science and artifact evaluation preparation.
|
|
47
|
+
- `src/`: reusable project code.
|
|
48
|
+
|
|
49
|
+
## Agent Capabilities
|
|
50
|
+
|
|
51
|
+
Project-local skills and MCP records are managed with:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx academic-research skills presets
|
|
55
|
+
npx academic-research skills install --preset default
|
|
56
|
+
npx academic-research skills list
|
|
57
|
+
npx academic-research skills status
|
|
58
|
+
npx academic-research mcp enable arxiv semantic-scholar openalex
|
|
59
|
+
npx academic-research mcp list
|
|
60
|
+
npx academic-research mcp commands arxiv
|
|
61
|
+
npx academic-research mcp install arxiv
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`skills list` reports installed project-local skills. `skills presets` reports
|
|
65
|
+
available install presets. `mcp enable` changes project records. `mcp commands`
|
|
66
|
+
prints external install commands without running them. `mcp install` runs
|
|
67
|
+
external tool installation commands and should be used only after reviewing the
|
|
68
|
+
selected MCP.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
project:
|
|
2
|
+
slug: academic-research-project
|
|
3
|
+
title: Academic Research Project
|
|
4
|
+
profile: academic-general
|
|
5
|
+
package: project_package
|
|
6
|
+
|
|
7
|
+
paths:
|
|
8
|
+
sources: sources
|
|
9
|
+
sota: sota
|
|
10
|
+
wiki: wiki
|
|
11
|
+
experiments: experiments
|
|
12
|
+
outputs: outputs
|
|
13
|
+
|
|
14
|
+
run:
|
|
15
|
+
seed: 42
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Output Contracts
|
|
2
|
+
|
|
3
|
+
- `repro_outputs/`: trusted reproduction evidence.
|
|
4
|
+
- `train_outputs/`: training run evidence.
|
|
5
|
+
- `explore_outputs/`: exploratory variants.
|
|
6
|
+
- `analysis_outputs/`: analysis reports and claim audits.
|
|
7
|
+
- `debug_outputs/`: diagnosis artifacts.
|
|
8
|
+
- `outputs/`: curated paper-facing figures, tables, models, and exportable derived assets.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
run_id,date,git_commit,question,hypothesis,command,config,seed,dataset,metric,result,runtime,status,record_path,notes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Experiment: <run_id>
|
|
2
|
+
|
|
3
|
+
## Question
|
|
4
|
+
|
|
5
|
+
<fill: experiment question>
|
|
6
|
+
|
|
7
|
+
## Hypothesis
|
|
8
|
+
|
|
9
|
+
<fill: expected result or pattern>
|
|
10
|
+
|
|
11
|
+
## Command
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# <fill: exact command>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Result
|
|
18
|
+
|
|
19
|
+
<fill: measured result, output path, or failure>
|
|
20
|
+
|
|
21
|
+
## Interpretation
|
|
22
|
+
|
|
23
|
+
<fill: claim status, limitations, and next action>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "academic-research-project",
|
|
3
|
+
"private": true,
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"doctor": "academic-research doctor",
|
|
7
|
+
"skills:install": "academic-research skills install --preset default",
|
|
8
|
+
"skills:list": "academic-research skills list",
|
|
9
|
+
"skills:presets": "academic-research skills presets",
|
|
10
|
+
"mcp:list": "academic-research mcp list",
|
|
11
|
+
"mcp:commands": "academic-research mcp commands",
|
|
12
|
+
"mcp:doctor": "academic-research mcp doctor"
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"create-academic-research": "^0.1.0"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=69", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "academic-research-project"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Academic research project."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
dependencies = []
|
|
12
|
+
|
|
13
|
+
[project.optional-dependencies]
|
|
14
|
+
dev = [
|
|
15
|
+
"pytest>=8.0",
|
|
16
|
+
"ruff>=0.4"
|
|
17
|
+
]
|
|
18
|
+
analysis = [
|
|
19
|
+
"numpy>=1.26",
|
|
20
|
+
"pandas>=2.0",
|
|
21
|
+
"matplotlib>=3.8",
|
|
22
|
+
"seaborn>=0.13"
|
|
23
|
+
]
|
|
24
|
+
notebooks = [
|
|
25
|
+
"ipykernel>=6.0",
|
|
26
|
+
"jupyterlab>=4.0"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[tool.setuptools.packages.find]
|
|
30
|
+
where = ["src"]
|
|
31
|
+
|
|
32
|
+
[tool.pytest.ini_options]
|
|
33
|
+
testpaths = ["tests"]
|
|
34
|
+
pythonpath = ["src"]
|
|
35
|
+
|
|
36
|
+
[tool.ruff]
|
|
37
|
+
line-length = 100
|
|
38
|
+
target-version = "py311"
|
|
39
|
+
|
|
40
|
+
[tool.ruff.lint]
|
|
41
|
+
select = ["E", "F", "I", "UP", "B"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
source_id,title,authors,year,venue,method,dataset_or_sample,task_or_problem,key_claim,metric_or_result,limitations,relevance,citation_count_or_signal,identifiers,notes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
stage,source_id,title,decision,reason,screened_by,date,notes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Search Strategy
|
|
2
|
+
|
|
3
|
+
## Research Question
|
|
4
|
+
|
|
5
|
+
<fill: research question or review objective>
|
|
6
|
+
|
|
7
|
+
## Sources Queried
|
|
8
|
+
|
|
9
|
+
| Source | Query | Date | Filters | Results | Notes |
|
|
10
|
+
|---|---|---:|---|---:|---|
|
|
11
|
+
|
|
12
|
+
## Screening Notes
|
|
13
|
+
|
|
14
|
+
<fill: screening workflow, ambiguity, or reviewer notes>
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
citation_key,status,issue,source_id,claim_or_location,expected_fix,checked_on,notes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
source_id,input_path,output_path,tool,command_or_config,conversion_date,quality,checked_pages,known_issues,notes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
source_id,type,title,authors,year,venue,identifiers,raw_path,derived_path,bib_path,status,relevance,evidence_level,quality_notes,added_on,last_checked,notes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Project package."""
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def test_core_research_structure_exists() -> None:
|
|
5
|
+
root = Path(__file__).resolve().parents[1]
|
|
6
|
+
for relative in (
|
|
7
|
+
"AGENTS.md",
|
|
8
|
+
"configs/default.yaml",
|
|
9
|
+
"configs/capabilities.yaml",
|
|
10
|
+
"docs/agent/capability-profile.md",
|
|
11
|
+
"notebooks/README.md",
|
|
12
|
+
"outputs/figures",
|
|
13
|
+
"outputs/tables",
|
|
14
|
+
"data/raw",
|
|
15
|
+
"analysis_outputs",
|
|
16
|
+
"artifacts/cache",
|
|
17
|
+
"artifacts/data",
|
|
18
|
+
"artifacts/models",
|
|
19
|
+
"artifacts/releases",
|
|
20
|
+
"sources/source-ledger.csv",
|
|
21
|
+
"sota/literature-matrix.csv",
|
|
22
|
+
"wiki/index.md",
|
|
23
|
+
"wiki/log.md",
|
|
24
|
+
):
|
|
25
|
+
assert (root / relative).exists()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Wiki Log
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|