Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "lightcone-cli",
"description": "Lightcone Research's agentic layer for ASTRA — Claude Code plugin shipping the /lc-* skills, /astra and /lc-cli reference skills, lc-extractor subagent, and session hooks that integrate Claude Code with the lc workflow.",
"owner": {
"name": "Lightcone Research",
"url": "https://github.com/LightconeResearch"
},
"plugins": [
{
"name": "lightcone",
"description": "Skills, agents, and hooks for working on ASTRA projects in Claude Code. Installed by `lc init` (which shells out to `claude plugin install lightcone@lightcone-cli`).",
"source": "./claude/lightcone"
}
]
}
14 changes: 10 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ src/lightcone/ # namespace — NO __init__.py
├── cli/ # Click surface
│ ├── __init__.py # exposes main()
│ ├── commands.py # init, run, status, verify, build
│ ├── plugin.py # get_plugin_source_dir
│ ├── plugin.py # get_marketplace_root + MARKETPLACE_NAME / PLUGIN_NAME constants
│ └── claude/ # force-included Claude plugin bundle (in installed wheel only)
├── engine/ # execution substrate — Snakemake-based
│ ├── __init__.py
Expand All @@ -66,17 +66,23 @@ src/lightcone/ # namespace — NO __init__.py
├── cli.py # `lc eval` subcommand group
├── harness.py, sandbox.py, graders.py, build.py, report.py, models.py

claude/lightcone/ # Claude plugin source — force-included into the wheel
.claude-plugin/ # marketplace manifest (force-included into the wheel)
└── marketplace.json # declares the `lightcone` plugin sourced from ./claude/lightcone

claude/lightcone/ # Claude Code plugin source — force-included into the wheel
├── .claude-plugin/plugin.json # plugin manifest (name=lightcone)
├── skills/ # lc-new, lc-from-code, lc-from-paper,
│ # lc-feedback, ralph;
│ # paper-reproduction bundle: lc-from-paper (entry),
│ # ralph (loop substrate), narrative,
│ # paper-extraction, figure-comparison,
│ # check-sentence-by-sentence
│ # plus reference skills astra, lc-cli
│ # (see skills/README.md for the full bundle map)
├── agents/ # lc-extractor
├── templates/ # Project CLAUDE.md template
└── scripts/ # Session hooks (bash): venv activation, validate-on-save, session-start primer
├── hooks/hooks.json # hook config (${CLAUDE_PLUGIN_ROOT}-rooted commands)
├── scripts/ # hook handlers (bash): activate-venv, session-start primer, validate-on-save
└── templates/ # Project CLAUDE.md template

tests/ # pytest — mirrors src/ structure
pyproject.toml # hatchling + hatch-vcs, ASTRA + Snakemake as deps
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,22 @@

**lightcone-cli** (`lc`) is the agentic execution layer for
[ASTRA](https://astra-spec.org/latest/) (Agentic Schema for Transparent
Research Analysis). Describe your analysis to an AI agent and `lc` takes
care of the rest — specification, execution, and provenance.
Research Analysis). Use it from Claude Code, Codex, or Pi: describe the
analysis you want, and `lc` keeps the specification, execution, and provenance
in sync.

## Quick Start

```bash
uv tool install lightcone-cli
lc init my-analysis
cd my-analysis
claude
claude # or: codex / pi
```

`lc init` scaffolds the project and, when those CLIs are on your `PATH`,
installs the shared Lightcone bundle for Claude, Codex, and Pi.

Then tell the agent what you have to start from — a research question
(`/lc-new`), existing code (`/lc-from-code`), or a paper to reproduce
(`/lc-from-paper`).
Expand Down
13 changes: 13 additions & 0 deletions claude/lightcone/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "lightcone",
"version": "0.1.0",
"description": "Lightcone Research's agentic layer for ASTRA. Bundles the /lc-* skills (lc-new, lc-from-code, lc-from-paper, lc-feedback, ralph, and the paper-reproduction sibling bundle), the /astra and /lc-cli reference skills, the lc-extractor literature subagent, and SessionStart + PostToolUse hooks that prepend the project venv to PATH, surface validation status, and auto-validate astra.yaml edits.",
"author": {
"name": "Lightcone Research",
"url": "https://github.com/LightconeResearch"
},
"homepage": "https://lightconeresearch.github.io/lightcone-cli/",
"repository": "https://github.com/LightconeResearch/lightcone-cli",
"license": "BSD-3-Clause",
"keywords": ["astra", "lightcone", "research", "reproducibility", "snakemake"]
}
15 changes: 15 additions & 0 deletions claude/lightcone/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "lightcone",
"version": "0.1.0",
"description": "Lightcone Research's agentic layer for ASTRA. Bundles the lc-* skills, ASTRA and lc-cli reference skills, and hooks that integrate Codex sessions with the lc workflow.",
"author": {
"name": "Lightcone Research",
"url": "https://github.com/LightconeResearch"
},
"homepage": "https://lightconeresearch.github.io/lightcone-cli/",
"repository": "https://github.com/LightconeResearch/lightcone-cli",
"license": "BSD-3-Clause",
"keywords": ["astra", "lightcone", "research", "reproducibility", "snakemake"],
"skills": "./skills/",
"hooks": "./hooks/hooks.json"
}
Loading
Loading