research-scan 0.5.0__tar.gz
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.
- research_scan-0.5.0/.claude-plugin/plugin.json +5 -0
- research_scan-0.5.0/.env.example +23 -0
- research_scan-0.5.0/.github/workflows/release.yml +83 -0
- research_scan-0.5.0/.gitignore +26 -0
- research_scan-0.5.0/.python-version +1 -0
- research_scan-0.5.0/AGENTS.md +542 -0
- research_scan-0.5.0/CHANGELOG.md +240 -0
- research_scan-0.5.0/CITATION.cff +24 -0
- research_scan-0.5.0/CODE_OF_CONDUCT.md +84 -0
- research_scan-0.5.0/CONTRIBUTING.md +76 -0
- research_scan-0.5.0/LICENSE +201 -0
- research_scan-0.5.0/PKG-INFO +16 -0
- research_scan-0.5.0/README.md +409 -0
- research_scan-0.5.0/SECURITY.md +38 -0
- research_scan-0.5.0/THIRD_PARTY_LICENSES.md +40 -0
- research_scan-0.5.0/docs/measurements.md +938 -0
- research_scan-0.5.0/eval/briefs/llm-lit-search.md +51 -0
- research_scan-0.5.0/eval/golden/TOPIC3-PLACEHOLDER.yaml +45 -0
- research_scan-0.5.0/eval/golden/defaults-savings.yaml +175 -0
- research_scan-0.5.0/eval/golden/llm-lit-search.yaml +121 -0
- research_scan-0.5.0/eval/judge-prompt.md +103 -0
- research_scan-0.5.0/eval/judge.sh +73 -0
- research_scan-0.5.0/eval/results/.gitkeep +0 -0
- research_scan-0.5.0/eval/results/2026-08-19-defaults-savings.json +100 -0
- research_scan-0.5.0/eval/results/2026-08-19-llm-lit-search.json +100 -0
- research_scan-0.5.0/pyproject.toml +54 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/README.md +1 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/brief.md +20 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/candidates.json +30621 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/coverage.json +267 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/evidence.bib +124 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/evidence.json +2053 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/evidence.md +256 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/expanded.json +148 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/expansion.log.jsonl +37 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/manifest.json +137 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/queries.json +100 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/ranked.json +1735 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/retrieval.log.jsonl +33 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/01.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/02.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/03.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/04.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/05.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/06.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/07.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/08.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/09.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/10.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/x01.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/x02.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/x03.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/x04.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen-batches/x05.json +140 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/screen.json +2525 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/shortlist.json +4085 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-mcp-transport/verify.log.jsonl +50 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/README.md +1 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/brief.md +20 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/candidates.json +48079 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/coverage.json +559 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/evidence.bib +126 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/evidence.json +1934 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/evidence.md +256 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/expanded-round2.json +124 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/expanded.json +148 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/expansion-r2.log.jsonl +17 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/expansion.log.jsonl +37 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/manifest.json +192 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/queries.json +129 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/ranked.json +1811 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/retrieval-r2.log.jsonl +22 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/retrieval.log.jsonl +33 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/01.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/02.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/03.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/04.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/05.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/06.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/07.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/08.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/09.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/10.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r01.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r02.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r03.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r04.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r05.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r06.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r07.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/r08.json +77 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/x01.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/x02.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/x03.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/x04.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/x05.json +140 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/xr01.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/xr02.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/xr03.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen-batches/xr04.json +257 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/screen.json +4446 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/shortlist.json +3995 -0
- research_scan-0.5.0/research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/verify.log.jsonl +52 -0
- research_scan-0.5.0/research-scan-v1-spec.md +385 -0
- research_scan-0.5.0/skills/research-scan/SKILL.md +74 -0
- research_scan-0.5.0/skills/research-scan/examples/brief.example.md +63 -0
- research_scan-0.5.0/skills/research-scan/examples/brief.research-example.md +68 -0
- research_scan-0.5.0/skills/research-scan/examples/queries.example.json +90 -0
- research_scan-0.5.0/skills/research-scan/references/plan-rubric.md +268 -0
- research_scan-0.5.0/skills/research-scan/references/rerank-rubric.md +162 -0
- research_scan-0.5.0/skills/research-scan/references/schemas.md +703 -0
- research_scan-0.5.0/skills/research-scan/references/screen-rubric.md +112 -0
- research_scan-0.5.0/src/research_scan/__init__.py +20 -0
- research_scan-0.5.0/src/research_scan/cli.py +1245 -0
- research_scan-0.5.0/src/research_scan/config.py +271 -0
- research_scan-0.5.0/src/research_scan/coverage.py +276 -0
- research_scan-0.5.0/src/research_scan/dedup.py +317 -0
- research_scan-0.5.0/src/research_scan/doctor.py +551 -0
- research_scan-0.5.0/src/research_scan/evalrun.py +421 -0
- research_scan-0.5.0/src/research_scan/expand.py +388 -0
- research_scan-0.5.0/src/research_scan/http.py +494 -0
- research_scan-0.5.0/src/research_scan/log.py +131 -0
- research_scan-0.5.0/src/research_scan/mcp_server.py +1158 -0
- research_scan-0.5.0/src/research_scan/profiles.py +55 -0
- research_scan-0.5.0/src/research_scan/render.py +258 -0
- research_scan-0.5.0/src/research_scan/retrieve.py +636 -0
- research_scan-0.5.0/src/research_scan/run.py +282 -0
- research_scan-0.5.0/src/research_scan/schema.py +1297 -0
- research_scan-0.5.0/src/research_scan/select.py +406 -0
- research_scan-0.5.0/src/research_scan/shortlist.py +108 -0
- research_scan-0.5.0/src/research_scan/sources/__init__.py +2 -0
- research_scan-0.5.0/src/research_scan/sources/arxiv.py +176 -0
- research_scan-0.5.0/src/research_scan/sources/base.py +72 -0
- research_scan-0.5.0/src/research_scan/sources/crossref.py +145 -0
- research_scan-0.5.0/src/research_scan/sources/openalex.py +281 -0
- research_scan-0.5.0/src/research_scan/sources/pubmed.py +2 -0
- research_scan-0.5.0/src/research_scan/sources/s2.py +335 -0
- research_scan-0.5.0/src/research_scan/verify.py +294 -0
- research_scan-0.5.0/tests/conftest.py +210 -0
- research_scan-0.5.0/tests/fixtures/arxiv-search.atom.xml +386 -0
- research_scan-0.5.0/tests/fixtures/openalex_defaults.json +2550 -0
- research_scan-0.5.0/tests/fixtures/openalex_nudge.json +2190 -0
- research_scan-0.5.0/tests/fixtures/s2_defaults.json +109 -0
- research_scan-0.5.0/tests/fixtures/s2_nudge.json +112 -0
- research_scan-0.5.0/tests/skill_triggers.md +89 -0
- research_scan-0.5.0/tests/test_cli_completion.py +67 -0
- research_scan-0.5.0/tests/test_cli_configure.py +210 -0
- research_scan-0.5.0/tests/test_cli_s1.py +627 -0
- research_scan-0.5.0/tests/test_cli_s2.py +622 -0
- research_scan-0.5.0/tests/test_cli_s4.py +494 -0
- research_scan-0.5.0/tests/test_config.py +226 -0
- research_scan-0.5.0/tests/test_coverage.py +224 -0
- research_scan-0.5.0/tests/test_dedup.py +261 -0
- research_scan-0.5.0/tests/test_doctor.py +322 -0
- research_scan-0.5.0/tests/test_eval.py +661 -0
- research_scan-0.5.0/tests/test_expand.py +663 -0
- research_scan-0.5.0/tests/test_http.py +309 -0
- research_scan-0.5.0/tests/test_mcp.py +939 -0
- research_scan-0.5.0/tests/test_retrieve.py +604 -0
- research_scan-0.5.0/tests/test_schema.py +483 -0
- research_scan-0.5.0/tests/test_select.py +734 -0
- research_scan-0.5.0/tests/test_shortlist.py +143 -0
- research_scan-0.5.0/tests/test_sources.py +468 -0
- research_scan-0.5.0/tests/test_verify.py +571 -0
- research_scan-0.5.0/uv.lock +1742 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "research-scan",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Find the 5–10 recent papers with the highest impact on a research question, topic, or project. Multi-query scholarly retrieval (OpenAlex, Semantic Scholar, arXiv), citation-graph expansion, rubric-based screening and reranking, DOI verification."
|
|
5
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# research-scan credentials.
|
|
2
|
+
#
|
|
3
|
+
# Copy to ~/.config/research-scan/.env (preferred — works from any directory once
|
|
4
|
+
# `uv tool install` has put the CLI on PATH), or to ./.env for repo-local dev.
|
|
5
|
+
#
|
|
6
|
+
# Precedence, highest first: process environment > ~/.config/research-scan/.env > ./.env
|
|
7
|
+
#
|
|
8
|
+
# Only OPENALEX_API_KEY is mandatory (`research-scan doctor` exits 3 without it).
|
|
9
|
+
|
|
10
|
+
# Mandatory. Free key, ~$1/day free allowance: https://openalex.org/
|
|
11
|
+
OPENALEX_API_KEY=
|
|
12
|
+
|
|
13
|
+
# Strongly recommended: raises the OpenAlex rate limit to 5 req/s and puts you in
|
|
14
|
+
# the Crossref polite pool (sent in the User-Agent). Not a secret.
|
|
15
|
+
OPENALEX_MAILTO=
|
|
16
|
+
|
|
17
|
+
# Optional. Free key, 1 req/s: https://www.semanticscholar.org/product/api
|
|
18
|
+
# Without it, Semantic Scholar is throttled to ~0.3 req/s and doctor WARNs.
|
|
19
|
+
S2_API_KEY=
|
|
20
|
+
|
|
21
|
+
# Optional. Raises NCBI E-utilities from 3 req/s to 10 req/s. Only matters once the PubMed
|
|
22
|
+
# source is built — `biomed` routes to it today but it is recorded as unavailable.
|
|
23
|
+
NCBI_API_KEY=
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: release
|
|
2
|
+
|
|
3
|
+
# Tags only. Nothing here runs on a push to main or on a pull request, so the
|
|
4
|
+
# publish path cannot be reached except by cutting a tag.
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
tags:
|
|
8
|
+
- "v*"
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
|
+
|
|
18
|
+
- uses: astral-sh/setup-uv@v10.0.1
|
|
19
|
+
with:
|
|
20
|
+
enable-cache: true
|
|
21
|
+
|
|
22
|
+
- name: Install the locked dependency set
|
|
23
|
+
run: uv sync --locked
|
|
24
|
+
|
|
25
|
+
- name: Lint
|
|
26
|
+
run: uv run ruff check
|
|
27
|
+
|
|
28
|
+
- name: Test
|
|
29
|
+
run: uv run pytest
|
|
30
|
+
|
|
31
|
+
# The tag is the release's only claim about which version this is, and
|
|
32
|
+
# importlib.metadata reads the version out of the built distribution. If the
|
|
33
|
+
# two disagree, the published artifact would carry a version nobody tagged.
|
|
34
|
+
- name: Tag must match the package version
|
|
35
|
+
run: |
|
|
36
|
+
tag_version="${GITHUB_REF_NAME#v}"
|
|
37
|
+
pyproject_version="$(uv run python -c 'import tomllib,pathlib; print(tomllib.loads(pathlib.Path("pyproject.toml").read_text())["project"]["version"])')"
|
|
38
|
+
echo "tag: ${GITHUB_REF_NAME} (version ${tag_version})"
|
|
39
|
+
echo "pyproject: ${pyproject_version}"
|
|
40
|
+
if [ "${tag_version}" != "${pyproject_version}" ]; then
|
|
41
|
+
echo "::error title=Version mismatch::tag ${GITHUB_REF_NAME} does not match pyproject.toml version ${pyproject_version}. Bump pyproject.toml or retag; do not publish this build."
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
- name: Build
|
|
46
|
+
run: uv build
|
|
47
|
+
|
|
48
|
+
# The repo passing its own tests is not evidence the artifact works. Install the
|
|
49
|
+
# wheel somewhere that has none of the source tree on the path and run it.
|
|
50
|
+
- name: Smoke-test the built wheel
|
|
51
|
+
run: |
|
|
52
|
+
python3 -m venv /tmp/smoke
|
|
53
|
+
/tmp/smoke/bin/pip install --quiet --upgrade pip
|
|
54
|
+
/tmp/smoke/bin/pip install --quiet dist/*.whl
|
|
55
|
+
installed_version="$(/tmp/smoke/bin/research-scan --version)"
|
|
56
|
+
echo "wheel reports: ${installed_version}"
|
|
57
|
+
if [ "${installed_version}" != "${GITHUB_REF_NAME#v}" ]; then
|
|
58
|
+
echo "::error title=Wheel version mismatch::installed wheel reports ${installed_version}, expected ${GITHUB_REF_NAME#v}"
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
- uses: actions/upload-artifact@v7
|
|
63
|
+
with:
|
|
64
|
+
name: dist
|
|
65
|
+
path: dist/
|
|
66
|
+
if-no-files-found: error
|
|
67
|
+
|
|
68
|
+
publish:
|
|
69
|
+
needs: build
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
environment: pypi
|
|
72
|
+
permissions:
|
|
73
|
+
# The only credential this job gets. There is no API token anywhere in this
|
|
74
|
+
# workflow or in the repository's secrets: PyPI Trusted Publishing exchanges
|
|
75
|
+
# this short-lived OIDC token for an upload token at publish time.
|
|
76
|
+
id-token: write
|
|
77
|
+
steps:
|
|
78
|
+
- uses: actions/download-artifact@v8
|
|
79
|
+
with:
|
|
80
|
+
name: dist
|
|
81
|
+
path: dist/
|
|
82
|
+
|
|
83
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.env
|
|
2
|
+
.venv/
|
|
3
|
+
__pycache__/
|
|
4
|
+
*.pyc
|
|
5
|
+
.pytest_cache/
|
|
6
|
+
.ruff_cache/
|
|
7
|
+
eval/results/*
|
|
8
|
+
!eval/results/.gitkeep
|
|
9
|
+
# The documented V1 acceptance run. Narrow negation on purpose — ad-hoc result files stay out.
|
|
10
|
+
!eval/results/2026-08-19-defaults-savings.json
|
|
11
|
+
!eval/results/2026-08-19-llm-lit-search.json
|
|
12
|
+
|
|
13
|
+
.DS_Store
|
|
14
|
+
|
|
15
|
+
# Scan outputs — runs are local artefacts, not repo content.
|
|
16
|
+
# Excluded per level rather than as `research/`: git will not descend into an excluded directory,
|
|
17
|
+
# so a negation inside one never fires. Narrow, the same way eval/results keeps only its
|
|
18
|
+
# documented acceptance runs — here, the two transport runs behind the v0.4.0 tag.
|
|
19
|
+
research/*
|
|
20
|
+
!research/scans/
|
|
21
|
+
research/scans/*
|
|
22
|
+
!research/scans/2026-08-20-agentic-lit-search-mcp-transport/
|
|
23
|
+
!research/scans/2026-08-20-agentic-lit-search-orientation-mcp-transport/
|
|
24
|
+
|
|
25
|
+
# Built skill package — a build artefact, rebuilt from skills/research-scan/
|
|
26
|
+
dist/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|