@sushanglewis/lincoln 1.5.0 → 1.5.2
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/dist/main.d.ts +3 -0
- package/dist/main.js +1286 -916
- package/dist/main.js.map +1 -1
- package/dist/postinstall.d.ts +3 -0
- package/dist/postinstall.js +18 -0
- package/dist/postinstall.js.map +1 -0
- package/framework/.claude/agents/_contract.md +79 -0
- package/framework/.claude/agents/architect.md +31 -0
- package/framework/.claude/agents/default.md +151 -0
- package/framework/.claude/agents/designer.md +33 -0
- package/framework/.claude/agents/engineer.md +42 -0
- package/framework/.claude/agents/external/NOTICES.md +12 -0
- package/framework/.claude/agents/external/everything-claude-code.manifest.yaml +23 -0
- package/framework/.claude/agents/external/oh-my-claudecode.manifest.yaml +26 -0
- package/framework/.claude/agents/external/wshobson-agents.manifest.yaml +23 -0
- package/framework/.claude/agents/frontend-engineer.md +32 -0
- package/framework/.claude/agents/knowledge-curator.md +28 -0
- package/framework/.claude/agents/pm.md +38 -0
- package/framework/.claude/agents/qa.md +28 -0
- package/framework/.claude/agents/release-coordinator.md +25 -0
- package/framework/.claude/agents/researcher.md +41 -0
- package/framework/.claude/harnesses/claude-code.yaml +15 -0
- package/framework/.claude/harnesses/codex.yaml +40 -0
- package/framework/.claude/harnesses/command-map.yaml +255 -0
- package/framework/.claude/harnesses/opencode.yaml +32 -0
- package/framework/.claude/harnesses/scenarios.yaml +45 -0
- package/framework/.claude/hooks/on-pr-event.sh +69 -0
- package/framework/.claude/hooks/on-session-start.sh +427 -0
- package/framework/.claude/hooks/on-stop.sh +104 -0
- package/framework/.claude/hooks/post-tool-use.sh +161 -0
- package/framework/.claude/hooks/pre-tool-use.sh +246 -0
- package/framework/.claude/schemas/agent-definition.schema.json +35 -0
- package/framework/.claude/schemas/benchmark-report.schema.json +148 -0
- package/framework/.claude/schemas/pm-to-ux-handoff.schema.yaml +128 -0
- package/framework/.claude/schemas/stage-definition.schema.json +233 -0
- package/framework/.claude/schemas/workflow-stage.schema.json +86 -0
- package/framework/.claude/schemas/workflow-template.schema.json +88 -0
- package/framework/.claude/settings.json +14 -0
- package/framework/.claude/skills/build-product-prototype/SKILL.md +35 -0
- package/framework/.claude/skills/build-product-prototype/prompts/main.md +78 -0
- package/framework/.claude/skills/clarify-requirements/SKILL.md +32 -0
- package/framework/.claude/skills/clarify-requirements/prompts/main.md +81 -0
- package/framework/.claude/skills/dependencies.yaml +139 -0
- package/framework/.claude/skills/draft-product-design/SKILL.md +40 -0
- package/framework/.claude/skills/draft-product-design/prompts/main.md +47 -0
- package/framework/.claude/skills/lc-analyze-frameworks/SKILL.md +43 -0
- package/framework/.claude/skills/lc-analyze-frameworks/prompts/main.md +95 -0
- package/framework/.claude/skills/lc-benchmark/SKILL.md +61 -0
- package/framework/.claude/skills/lc-build-codebase-knowledge/SKILL.md +38 -0
- package/framework/.claude/skills/lc-build-codebase-knowledge/prompts/build-codebase-knowledge.md +61 -0
- package/framework/.claude/skills/lc-collect-intelligence/SKILL.md +43 -0
- package/framework/.claude/skills/lc-collect-intelligence/prompts/main.md +72 -0
- package/framework/.claude/skills/lc-competitive-analysis/SKILL.md +43 -0
- package/framework/.claude/skills/lc-competitive-analysis/prompts/main.md +70 -0
- package/framework/.claude/skills/lc-explore-opensource/SKILL.md +36 -0
- package/framework/.claude/skills/lc-explore-opensource/prompts/explore-opensource.md +77 -0
- package/framework/.claude/skills/lc-first-principles/SKILL.md +43 -0
- package/framework/.claude/skills/lc-first-principles/prompts/main.md +73 -0
- package/framework/.claude/skills/lc-handoff/SKILL.md +34 -0
- package/framework/.claude/skills/lc-init-branch/SKILL.md +52 -0
- package/framework/.claude/skills/lc-market-research/SKILL.md +43 -0
- package/framework/.claude/skills/lc-market-research/prompts/main.md +79 -0
- package/framework/.claude/skills/lc-product-research/SKILL.md +43 -0
- package/framework/.claude/skills/lc-product-research/prompts/main.md +80 -0
- package/framework/.claude/skills/lc-research-report/SKILL.md +43 -0
- package/framework/.claude/skills/lc-research-report/prompts/main.md +90 -0
- package/framework/.claude/skills/lc-research-scope/SKILL.md +43 -0
- package/framework/.claude/skills/lc-research-scope/prompts/main.md +82 -0
- package/framework/.claude/skills/lc-setup/SKILL.md +68 -0
- package/framework/.claude/skills/lc-setup/prompts/main.md +88 -0
- package/framework/.claude/skills/lc-stage/SKILL.md +45 -0
- package/framework/.claude/skills/lc-stakeholder-research/SKILL.md +43 -0
- package/framework/.claude/skills/lc-stakeholder-research/prompts/main.md +65 -0
- package/framework/.claude/skills/lc-status/SKILL.md +25 -0
- package/framework/.claude/skills/lc-storytelling/SKILL.md +43 -0
- package/framework/.claude/skills/lc-storytelling/prompts/main.md +77 -0
- package/framework/.claude/skills/lc-wf/SKILL.md +54 -0
- package/framework/.claude/skills/lc-workflow/SKILL.md +48 -0
- package/framework/.claude/skills/lc-workflow/validators/validate.py +755 -0
- package/framework/.claude/skills/lc-workflow-router/SKILL.md +41 -0
- package/framework/.claude/skills/lc-workflow-router/prompts/intake-prompt.md +91 -0
- package/framework/.claude/skills/lc-workflow-router/prompts/router-prompt.md +44 -0
- package/framework/.claude/skills/plan-tdd-development/SKILL.md +31 -0
- package/framework/.claude/skills/plan-tdd-development/prompts/main.md +44 -0
- package/framework/.claude/skills/process-interview/SKILL.md +32 -0
- package/framework/.claude/skills/process-interview/prompts/main.md +47 -0
- package/framework/.claude/skills/propose-with-openspec/SKILL.md +37 -0
- package/framework/.claude/skills/propose-with-openspec/prompts/main.md +53 -0
- package/framework/.claude/skills/split-to-github/SKILL.md +32 -0
- package/framework/.claude/skills/split-to-github/prompts/main.md +42 -0
- package/framework/.claude/skills/sync-to-knowledge/SKILL.md +35 -0
- package/framework/.claude/skills/sync-to-knowledge/prompts/main.md +54 -0
- package/framework/.claude/skills/workflow-continue/SKILL.md +24 -0
- package/framework/.claude/skills/workflow-continue/prompts/main.md +25 -0
- package/framework/.claude/stages/build-codebase-knowledge.yaml +42 -0
- package/framework/.claude/stages/clarify.yaml +59 -0
- package/framework/.claude/stages/explore-opensource.yaml +40 -0
- package/framework/.claude/stages/implement.yaml +60 -0
- package/framework/.claude/stages/ingest.yaml +40 -0
- package/framework/.claude/stages/lc-analyze-frameworks.yaml +37 -0
- package/framework/.claude/stages/lc-collect-intelligence.yaml +37 -0
- package/framework/.claude/stages/lc-competitive-analysis.yaml +37 -0
- package/framework/.claude/stages/lc-first-principles.yaml +37 -0
- package/framework/.claude/stages/lc-market-research.yaml +37 -0
- package/framework/.claude/stages/lc-product-research.yaml +37 -0
- package/framework/.claude/stages/lc-research-report.yaml +38 -0
- package/framework/.claude/stages/lc-research-scope.yaml +38 -0
- package/framework/.claude/stages/lc-stakeholder-research.yaml +37 -0
- package/framework/.claude/stages/lc-storytelling.yaml +37 -0
- package/framework/.claude/stages/product-design-docs.yaml +66 -0
- package/framework/.claude/stages/product-prototype.yaml +53 -0
- package/framework/.claude/stages/propose.yaml +45 -0
- package/framework/.claude/stages/split.yaml +41 -0
- package/framework/.claude/stages/sync-knowledge.yaml +49 -0
- package/framework/.claude/stages/tdd-development-plan.yaml +43 -0
- package/framework/.claude/stages/workflow-router.yaml +45 -0
- package/framework/.claude/templates/solo-workflow-context.yaml +23 -0
- package/framework/.claude/workflows/README.md +93 -0
- package/framework/.claude/workflows/bug-fix.yaml +81 -0
- package/framework/.claude/workflows/design-spike.yaml +55 -0
- package/framework/.claude/workflows/existing-project-iteration.yaml +106 -0
- package/framework/.claude/workflows/interview-to-knowledge.yaml +189 -0
- package/framework/.claude/workflows/oss-first-design.yaml +100 -0
- package/framework/.claude/workflows/pm-research.yaml +115 -0
- package/framework/.claude-plugin/hooks.json +6 -0
- package/framework/.claude-plugin/marketplace.json +32 -0
- package/framework/.claude-plugin/plugin.json +57 -0
- package/framework/.version-bump.json +43 -0
- package/framework/CLAUDE.md +140 -0
- package/framework/CONTRIBUTING.md +219 -0
- package/framework/LICENSE +21 -0
- package/framework/README.en.md +139 -0
- package/framework/README.md +139 -0
- package/framework/RELEASE.md +334 -0
- package/framework/SKILL.md +24 -0
- package/framework/USAGE.md +356 -0
- package/framework/manifest.json +1214 -0
- package/framework/requirements.txt +4 -0
- package/framework/scripts/__init__.py +0 -0
- package/framework/scripts/build_codebase_knowledge.py +76 -0
- package/framework/scripts/bump_version.py +181 -0
- package/framework/scripts/check-dependency-drift.py +69 -0
- package/framework/scripts/check-harness-drift.sh +57 -0
- package/framework/scripts/check-main-merge-hygiene.py +128 -0
- package/framework/scripts/check-skill-dependencies.sh +124 -0
- package/framework/scripts/init-lincoln-branch.sh +300 -0
- package/framework/scripts/init-project.sh +184 -0
- package/framework/scripts/lc-benchmark-cli.py +66 -0
- package/framework/scripts/lincoln-audit.py +288 -0
- package/framework/scripts/lincoln-setup.py +651 -0
- package/framework/scripts/lincoln-status.py +448 -0
- package/framework/scripts/lincoln_benchmark.py +224 -0
- package/framework/scripts/lincoln_benchmark_eval.py +104 -0
- package/framework/scripts/lincoln_benchmark_metrics.py +818 -0
- package/framework/scripts/lincoln_benchmark_report.py +141 -0
- package/framework/scripts/lincoln_command_map.py +289 -0
- package/framework/scripts/lincoln_dependency_manager.py +335 -0
- package/framework/scripts/lincoln_documents.py +175 -0
- package/framework/scripts/lincoln_harness_adapter.py +319 -0
- package/framework/scripts/lincoln_index.py +255 -0
- package/framework/scripts/lincoln_paths.py +198 -0
- package/framework/scripts/lincoln_prd.py +227 -0
- package/framework/scripts/lincoln_role.py +46 -0
- package/framework/scripts/lincoln_scenario.py +59 -0
- package/framework/scripts/lincoln_session_start_metrics.py +71 -0
- package/framework/scripts/lincoln_skill_prompt.py +48 -0
- package/framework/scripts/lincoln_trace.py +335 -0
- package/framework/scripts/lincoln_workflow.py +199 -0
- package/framework/scripts/list-active-lincoln-branches.sh +87 -0
- package/framework/scripts/package-lincoln-plugin.py +340 -0
- package/framework/scripts/run-infrastructure-tests.py +84 -0
- package/framework/scripts/stage_loader.py +1071 -0
- package/framework/scripts/static-check.sh +356 -0
- package/framework/scripts/sync-external-agents.sh +210 -0
- package/framework/scripts/sync-framework-package.mjs +218 -0
- package/framework/scripts/task_tool_guard.py +213 -0
- package/framework/scripts/track-artifacts.py +140 -0
- package/framework/scripts/validate_stage.py +350 -0
- package/{README.md → framework/tools/lincoln/README.md} +4 -4
- package/framework/tools/lincoln/package-lock.json +3349 -0
- package/framework/tools/lincoln/package.json +48 -0
- package/framework/tools/lincoln/src/cli.tsx +60 -0
- package/framework/tools/lincoln/src/components/AudioMeter.tsx +34 -0
- package/framework/tools/lincoln/src/components/CancelledScreen.tsx +11 -0
- package/framework/tools/lincoln/src/components/DevicesMenu.tsx +79 -0
- package/framework/tools/lincoln/src/components/HintBar.tsx +25 -0
- package/framework/tools/lincoln/src/components/LogView.tsx +36 -0
- package/framework/tools/lincoln/src/components/ModelMenu.tsx +122 -0
- package/framework/tools/lincoln/src/components/ReadyScreen.tsx +54 -0
- package/framework/tools/lincoln/src/components/RecordingApp.tsx +211 -0
- package/framework/tools/lincoln/src/components/RecordingScreen.tsx +41 -0
- package/framework/tools/lincoln/src/components/SelectMenu.tsx +53 -0
- package/framework/tools/lincoln/src/components/StatusPanel.tsx +52 -0
- package/framework/tools/lincoln/src/components/StopConfirmation.tsx +32 -0
- package/framework/tools/lincoln/src/config/args.ts +35 -0
- package/framework/tools/lincoln/src/config/loadConfig.ts +81 -0
- package/framework/tools/lincoln/src/config/resolveConfig.ts +85 -0
- package/framework/tools/lincoln/src/devices/listDevices.ts +11 -0
- package/framework/tools/lincoln/src/devices/parseDevices.ts +25 -0
- package/framework/tools/lincoln/src/hooks/useKeyHandler.ts +63 -0
- package/framework/tools/lincoln/src/main.tsx +4 -0
- package/framework/tools/lincoln/src/models/models.ts +34 -0
- package/framework/tools/lincoln/src/models/runWarmup.ts +46 -0
- package/framework/tools/lincoln/src/models/warmupProgress.ts +30 -0
- package/framework/tools/lincoln/src/recording/spawnRecorder.ts +127 -0
- package/framework/tools/lincoln/src/recording/useRecorder.ts +146 -0
- package/framework/tools/lincoln/src/utils/amplitudeToMeter.ts +4 -0
- package/framework/tools/lincoln/src/utils/formatDuration.ts +6 -0
- package/framework/tools/lincoln/src/utils/sessionId.ts +25 -0
- package/framework/tools/lincoln/tests/cli.test.tsx +52 -0
- package/framework/tools/lincoln/tests/components/AudioMeter.test.tsx +31 -0
- package/framework/tools/lincoln/tests/components/CancelledScreen.test.tsx +12 -0
- package/framework/tools/lincoln/tests/components/ReadyScreen.test.tsx +68 -0
- package/framework/tools/lincoln/tests/components/RecordingApp.menus.test.tsx +158 -0
- package/framework/tools/lincoln/tests/components/RecordingApp.test.tsx +248 -0
- package/framework/tools/lincoln/tests/components/RecordingScreen.test.tsx +37 -0
- package/framework/tools/lincoln/tests/components/SelectMenu.test.tsx +59 -0
- package/framework/tools/lincoln/tests/components/StopConfirmation.test.tsx +38 -0
- package/framework/tools/lincoln/tests/config/args.test.ts +49 -0
- package/framework/tools/lincoln/tests/config/loadConfig.test.ts +59 -0
- package/framework/tools/lincoln/tests/config/resolveConfig.test.ts +72 -0
- package/framework/tools/lincoln/tests/devices/parseDevices.test.ts +21 -0
- package/framework/tools/lincoln/tests/hooks/useKeyHandler.enabled.test.tsx +44 -0
- package/framework/tools/lincoln/tests/hooks/useKeyHandler.test.tsx +130 -0
- package/framework/tools/lincoln/tests/models/models.test.ts +27 -0
- package/framework/tools/lincoln/tests/models/warmupProgress.test.ts +25 -0
- package/framework/tools/lincoln/tests/recording/spawnRecorder.test.ts +85 -0
- package/framework/tools/lincoln/tests/recording/useRecorder.test.tsx +172 -0
- package/framework/tools/lincoln/tests/utils/amplitudeToMeter.test.ts +22 -0
- package/framework/tools/lincoln/tests/utils/formatDuration.test.ts +11 -0
- package/framework/tools/lincoln/tests/utils/sessionId.test.ts +30 -0
- package/framework/tools/lincoln/tsconfig.json +22 -0
- package/framework/tools/lincoln/tsconfig.tests.json +10 -0
- package/framework/tools/lincoln/tsup.config.ts +17 -0
- package/framework/tools/lincoln/vitest.config.ts +20 -0
- package/framework/tools/lincoln-installer/package-lock.json +3611 -0
- package/framework/tools/lincoln-installer/package.json +53 -0
- package/framework/tools/lincoln-installer/src/cli.tsx +63 -0
- package/framework/tools/lincoln-installer/src/components/HarnessSelectScreen.tsx +43 -0
- package/framework/tools/lincoln-installer/src/components/InstallerApp.tsx +98 -0
- package/framework/tools/lincoln-installer/src/components/OptionsScreen.tsx +56 -0
- package/framework/tools/lincoln-installer/src/components/ProgressScreen.tsx +25 -0
- package/framework/tools/lincoln-installer/src/components/ResultScreen.tsx +40 -0
- package/framework/tools/lincoln-installer/src/components/SelectMenu.tsx +73 -0
- package/framework/tools/lincoln-installer/src/components/SummaryScreen.tsx +49 -0
- package/framework/tools/lincoln-installer/src/components/UpdateApp.tsx +135 -0
- package/framework/tools/lincoln-installer/src/components/WelcomeScreen.tsx +22 -0
- package/framework/tools/lincoln-installer/src/config/args.ts +76 -0
- package/framework/tools/lincoln-installer/src/config/resolveConfig.ts +33 -0
- package/framework/tools/lincoln-installer/src/config/updateArgs.ts +67 -0
- package/framework/tools/lincoln-installer/src/hooks/useSetup.ts +149 -0
- package/framework/tools/lincoln-installer/src/main.tsx +11 -0
- package/framework/tools/lincoln-installer/src/types.ts +19 -0
- package/framework/tools/lincoln-installer/src/update-main.tsx +11 -0
- package/framework/tools/lincoln-installer/src/update.tsx +90 -0
- package/framework/tools/lincoln-installer/src/utils/detectHarness.ts +51 -0
- package/framework/tools/lincoln-installer/src/utils/runSetup.ts +62 -0
- package/framework/tools/lincoln-installer/src/utils/updateRelease.ts +454 -0
- package/framework/tools/lincoln-installer/tests/components/InstallerApp.test.tsx +88 -0
- package/framework/tools/lincoln-installer/tests/components/SelectMenu.test.tsx +26 -0
- package/framework/tools/lincoln-installer/tests/components/UpdateApp.test.tsx +170 -0
- package/framework/tools/lincoln-installer/tests/components/screens.test.tsx +310 -0
- package/framework/tools/lincoln-installer/tests/config/args.test.ts +66 -0
- package/framework/tools/lincoln-installer/tests/config/resolveConfig.test.ts +75 -0
- package/framework/tools/lincoln-installer/tests/config/updateArgs.test.ts +52 -0
- package/framework/tools/lincoln-installer/tests/hooks/useSetup.test.tsx +213 -0
- package/framework/tools/lincoln-installer/tests/update.test.tsx +108 -0
- package/framework/tools/lincoln-installer/tests/utils/detectHarness.test.ts +40 -0
- package/framework/tools/lincoln-installer/tests/utils/runSetup.test.ts +45 -0
- package/framework/tools/lincoln-installer/tests/utils/updateRelease.test.ts +559 -0
- package/framework/tools/lincoln-installer/tsconfig.json +22 -0
- package/framework/tools/lincoln-installer/tsconfig.tests.json +8 -0
- package/framework/tools/lincoln-installer/tsup.config.ts +17 -0
- package/framework/tools/lincoln-installer/vitest.config.ts +20 -0
- package/framework/tools/lincoln-record/Cargo.lock +1896 -0
- package/framework/tools/lincoln-record/Cargo.toml +24 -0
- package/framework/tools/lincoln-record/diarize/diarize.py +117 -0
- package/framework/tools/lincoln-record/diarize/merge.py +55 -0
- package/framework/tools/lincoln-record/src/audio/capture/microphone.rs +194 -0
- package/framework/tools/lincoln-record/src/audio/capture/mod.rs +1 -0
- package/framework/tools/lincoln-record/src/audio/devices.rs +20 -0
- package/framework/tools/lincoln-record/src/audio/mod.rs +5 -0
- package/framework/tools/lincoln-record/src/audio/resampler.rs +44 -0
- package/framework/tools/lincoln-record/src/audio/saver.rs +87 -0
- package/framework/tools/lincoln-record/src/audio/source.rs +104 -0
- package/framework/tools/lincoln-record/src/cli.rs +96 -0
- package/framework/tools/lincoln-record/src/config.rs +135 -0
- package/framework/tools/lincoln-record/src/lib.rs +6 -0
- package/framework/tools/lincoln-record/src/main.rs +242 -0
- package/framework/tools/lincoln-record/src/model/mod.rs +248 -0
- package/framework/tools/lincoln-record/src/output/metadata.rs +30 -0
- package/framework/tools/lincoln-record/src/output/mod.rs +2 -0
- package/framework/tools/lincoln-record/src/output/transcript.rs +42 -0
- package/framework/tools/lincoln-record/src/transcription/diarization.rs +64 -0
- package/framework/tools/lincoln-record/src/transcription/mod.rs +3 -0
- package/framework/tools/lincoln-record/src/transcription/provider.rs +43 -0
- package/framework/tools/lincoln-record/src/transcription/whisper.rs +176 -0
- package/framework/tools/lincoln-record/tests/cli_args.rs +103 -0
- package/framework/tools/lincoln-record/tests/config_test.rs +70 -0
- package/framework/tools/lincoln-record/tests/devices_test.rs +23 -0
- package/framework/tools/lincoln-record/tests/diarization_tests.rs +101 -0
- package/framework/tools/lincoln-record/tests/integration_tests.rs +44 -0
- package/framework/tools/lincoln-record/tests/model_test.rs +68 -0
- package/framework/tools/lincoln-record/tests/transcription_tests.rs +73 -0
- package/package.json +19 -13
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Lincoln — Agent Contract
|
|
2
|
+
|
|
3
|
+
本文件定义 Lincoln 仓库中 Claude Code Agent 的契约。它作为 Claude Code 项目级系统提示的一部分,由 `.claude/hooks/on-session-start.sh` 在会话启动时自动注入当前阶段上下文,Agent 不需要手动“先读 README 再读 CLAUDE.md”。
|
|
4
|
+
|
|
5
|
+
如果你是 Lincoln 模板的使用者,请从根目录 [`README.md`](README.md) 开始;如果你是框架开发者,才需要阅读本文件。
|
|
6
|
+
|
|
7
|
+
## `.claude/` 的定位
|
|
8
|
+
|
|
9
|
+
`.claude/` 是 Lincoln 在 Claude Code 机制下的**抽象系统提示层**,包含:
|
|
10
|
+
|
|
11
|
+
- `agents/` — Agent 角色模板(default、pm、designer、engineer、qa、researcher 等)。
|
|
12
|
+
- `skills/` — Lincoln 原生技能与外部技能依赖清单(`dependencies.yaml`);阶段到技能的映射由 `.claude/stages/<stage-id>.yaml` 的 `skills` 字段派生。
|
|
13
|
+
- `stages/` — 阶段上下文(每个阶段一个 `<stage-id>.yaml`,角色、技能、门控与产物约定内联其中)。
|
|
14
|
+
- `workflows/` — SOP 工作流模板定义与索引 [`README.md`](.claude/workflows/README.md)。
|
|
15
|
+
- `templates/issue-package/` — issue 工作包模板(只读;init 仅读取 `workflow-stage.yaml` 初始化实例,其余 `.tpl` 供 Agent 按需参考生成文档,不复制进工作包)。
|
|
16
|
+
- `schemas/` — JSON Schema 校验。
|
|
17
|
+
- `hooks/` — 生命周期 hooks,由 `.claude/settings.json` 自动挂接。
|
|
18
|
+
|
|
19
|
+
这些文件不描述某个具体 issue 的执行状态,而是提供**角色行为、阶段校验、技能路由、工作流模板**等抽象规则。具体 issue 的状态和产物保存在 `{process_slug}/workflow-stage.yaml` 及其同目录工作包中。
|
|
20
|
+
|
|
21
|
+
## Session Startup Protocol
|
|
22
|
+
|
|
23
|
+
每个 Agent 进入 Lincoln 会话时,Claude Code hooks 已经自动完成以下加载:
|
|
24
|
+
|
|
25
|
+
1. 依赖检测(`.claude/skills/dependencies.yaml`)。
|
|
26
|
+
2. 解析当前分支的 `{process_slug}/workflow-stage.yaml`。若不存在则回退到 legacy `.claude/workflow-state.yaml`。
|
|
27
|
+
3. 读取 `current_run.current_stage` 并加载 `.claude/stages/<current_stage>.yaml`(角色、技能、门控与上下文内联其中)。
|
|
28
|
+
4. 读取上一个 node 的 handoff 文档。
|
|
29
|
+
5. 输出 Lincoln 状态摘要。
|
|
30
|
+
|
|
31
|
+
Agent 启动后应:
|
|
32
|
+
|
|
33
|
+
1. 检查 hook 输出中是否包含「=== Lincoln 开场引导 ===」块:若有,先执行开场引导流程(`.claude/skills/lc-workflow-router/prompts/intake-prompt.md`:摸排 → 判断 → Johari 确认),经人类确认目标与执行路径后再继续。
|
|
34
|
+
2. 简要汇报当前阶段、已加载上下文、推荐技能、等待对象、下一步动作。
|
|
35
|
+
3. 运行 `python3 scripts/stage_loader.py --stage <current_stage> --action validate-entry` 进行准入校验。
|
|
36
|
+
4. 根据当前阶段和上下文继续工作。
|
|
37
|
+
|
|
38
|
+
如果 `.claude/workflow-stage.yaml` 存在但 `{process_slug}/workflow-stage.yaml` 不存在,说明需要迁移或初始化 issue 工作包;请提示人类运行:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
scripts/init-lincoln-branch.sh --issue-number <number>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 模板 vs 实例:状态文件
|
|
45
|
+
|
|
46
|
+
必须区分以下文件:
|
|
47
|
+
|
|
48
|
+
| 文件 | 性质 | 用途 |
|
|
49
|
+
|------|------|------|
|
|
50
|
+
| `.claude/templates/issue-package/workflow-stage.yaml` | **模板** | 只读。`init-lincoln-branch.sh` 复制它并填入 issue 专属信息。 |
|
|
51
|
+
| `.claude/templates/solo-workflow-context.yaml` | **模板** | 只读。`scripts/lincoln_workflow.py start`(solo 模式)渲染它生成 session 实例。 |
|
|
52
|
+
| `{process_slug}/workflow-stage.yaml` | **实例(team)** | issue 运行时的真实状态文件,人类-human、人类-Agent、Agent-Agent 之间共享的阶段交接协议。 |
|
|
53
|
+
| `.context/workflow/<name>.yaml` | **实例(solo)** | session 级 solo 工作流状态文件,gitignored,跟随 conductor workspace/session 生命周期,不跨成员共享。 |
|
|
54
|
+
|
|
55
|
+
工作流通过 `lc-wf-*` 命令(底层 `scripts/lincoln_workflow.py`)启动:`lc-wf-list` 列出所有工作流及其 `execution_mode`;solo 工作流生成 `.context/workflow/<name>.yaml`,team 工作流转发 `init-lincoln-branch.sh` 生成 `{process_slug}/workflow-stage.yaml`。Agent 只应读取和更新**实例**文件,不应直接修改模板。
|
|
56
|
+
|
|
57
|
+
状态解析优先级(`scripts/lincoln_paths.resolve_state_path`):显式参数/`LINCOLN_STATE_FILE` > team issue-package > solo `.context/workflow/` > `.claude/` 回退。solo 实例由 `.claude/hooks/on-session-start.sh` 在会话启动时自动注入上下文。
|
|
58
|
+
|
|
59
|
+
## Issue 工作包
|
|
60
|
+
|
|
61
|
+
每个 issue 对应一个分支(命名约定 `issue-<N>`,N 为 GitHub issue 编号)和一个工作包目录(默认 `{process_slug}=issue-<N>`):
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
issue-<N>/
|
|
65
|
+
├── workflow-stage.yaml # 阶段状态与 handoff 协议
|
|
66
|
+
├── documents.yaml # 文档索引:各阶段产物与 human 确认状态(自动生成)
|
|
67
|
+
├── recordings/ # 原始录音(只读)
|
|
68
|
+
├── interviews/<session-id>/
|
|
69
|
+
├── requirements/<session-id>/
|
|
70
|
+
├── designs/<design-id>/
|
|
71
|
+
├── openspec/changes/
|
|
72
|
+
├── docs/research/
|
|
73
|
+
└── handoffs/
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
过程文档随 feature 分支传递,不合并到 `main`。Agent 在任何阶段产生的产物都应写入 `{process_slug}/` 下的对应目录,并可通过 `scripts/stage_loader.py --stage <stage> --action record-artifacts` 将产物路径持久化回 `{process_slug}/workflow-stage.yaml`。每次状态保存都会自动刷新工作包根目录的 `documents.yaml` 文档索引(由 `scripts/lincoln_documents.py` 生成),Agent 开始工作前应先读它了解工作包内已有文档及其 human 确认状态。文档模板(`.tpl`)只读地保留在 `.claude/templates/issue-package/` 下,初始化时不再复制进工作包;Agent 需要生成文档时参考对应 `.tpl` 格式直接在工作包目录内撰写。
|
|
77
|
+
|
|
78
|
+
## Human Gate Rules
|
|
79
|
+
|
|
80
|
+
- `human_gate: true` 的步骤不能跳过。
|
|
81
|
+
- 必须获得人类 PM 的显式 `confirm` 或已审批标记。
|
|
82
|
+
- 在 `human_gate: true` 阶段,Agent 必须直接向人类 PM 发送消息,不得用 `TaskCreate`/`TaskUpdate` 暂存或拆分“发消息”动作。
|
|
83
|
+
- 在 human_gate 阶段,子技能仅用于探索或结构化,不得替代人类确认。
|
|
84
|
+
|
|
85
|
+
## Handoff Protocol
|
|
86
|
+
|
|
87
|
+
暂停或切换窗口时:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
python3 scripts/stage_loader.py --stage <current_stage> --action handoff-report
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
更新 `.context/lc-handoff-<stage>.md` 或 `{process_slug}/handoffs/` 文档。人类 PM 确认后:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
python3 scripts/stage_loader.py --stage <current_stage> --action approve-gate
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
标记该阶段 gate 审批通过。
|
|
100
|
+
|
|
101
|
+
## Observability Reporting
|
|
102
|
+
|
|
103
|
+
每个回复必须简要说明:
|
|
104
|
+
|
|
105
|
+
- 当前阶段
|
|
106
|
+
- 本次调用使用的技能
|
|
107
|
+
- 产物位置或修改的文件
|
|
108
|
+
- 校验状态(entry passed / exit pending / human gate waiting)
|
|
109
|
+
|
|
110
|
+
## Skill Invocation Rules
|
|
111
|
+
|
|
112
|
+
- 通过 `Skill` 工具调用技能,当前阶段可用技能由 `.claude/stages/<current_stage>.yaml` 的 `skills` 字段定义。
|
|
113
|
+
- 不得用技能调用替代 `human_gate`。
|
|
114
|
+
- 实施类技能(如 `subagent-driven-development`、`executing-plans`)必须在 PM 明确批准后才能调用。
|
|
115
|
+
- `lc-workflow-router` 在两种时机触发:(a) 会话开场引导(hook 注入开场引导块,或 `current_stage: not_started`)时先执行 intake 流程;(b) `{process_slug}/workflow-stage.yaml` 中 `current_run.workflow_template` 为空时选择工作流模板。
|
|
116
|
+
- 技能/命令入口统一为 `lc-*` 前缀(旧 `lincoln-*` 已移除);codex/opencode 适配产物由 `scripts/lincoln_harness_adapter.py` 从 `.claude/` 派生,不要手改生成文件,改动事实源后运行 `python3 scripts/lincoln-setup.py generate-harness --harness <name>`。
|
|
117
|
+
|
|
118
|
+
## 核心原则
|
|
119
|
+
|
|
120
|
+
1. **工作流优先**:任何操作必须符合当前阶段及其校验规则。
|
|
121
|
+
2. **人类门控不可跳过**:`human_gate: true` 必须获得人类 PM 显式确认。
|
|
122
|
+
3. **产物可追溯**:每个需求、每个功能都必须能关联回原始访谈、OpenSpec 变更、GitHub Issue/PR。
|
|
123
|
+
4. **知识库双轨维护**:每个合并的 issue 必须同时沉淀业务知识和技术知识到 Obsidian vault。
|
|
124
|
+
5. **不修改原始录音**:`{process_slug}/recordings/` 中的文件只读。
|
|
125
|
+
6. **Pencil 原型受控处理**:`.pen` 文件只能通过 Pencil 应用或 Pencil 工具处理。
|
|
126
|
+
7. **只更新实例状态**:永远不要直接修改 `.claude/templates/issue-package/workflow-stage.yaml`。
|
|
127
|
+
8. **自然语言优先**:Lincoln 是 AI-Native 工作流,人类用自然语言或 `/lc-*` 技能表达意图即可,永远不应被要求亲自在终端输入 `python3 scripts/...` 命令;所有脚本调用由 Agent 代为执行并翻译结果。
|
|
128
|
+
|
|
129
|
+
## 沟通风格
|
|
130
|
+
|
|
131
|
+
- 使用中文与人类 PM 交流。
|
|
132
|
+
- 汇报进度时简洁,重点说明当前步骤、产物位置、下一步需要人类做什么。
|
|
133
|
+
- 不确定时暂停并提问,不猜测。
|
|
134
|
+
|
|
135
|
+
## 相关文件
|
|
136
|
+
|
|
137
|
+
- [`README.md`](README.md) — 用户快速开始指南。
|
|
138
|
+
- [`.claude/workflows/README.md`](.claude/workflows/README.md) — 工作流模板索引。
|
|
139
|
+
- [`.claude/stages/`](.claude/stages/) — 阶段注册表与技能路由(每个阶段一个 `<stage-id>.yaml`,其 `skills` 字段派生阶段到技能的映射)。
|
|
140
|
+
- [`.claude/agents/default.md`](.claude/agents/default.md) — Agent 行为总则。
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# Contributing to Lincoln
|
|
2
|
+
|
|
3
|
+
欢迎为 Lincoln 贡献代码、文档、测试、工作流模板、Agent 角色与 skills。本文件同时约束**人类贡献者**与**Agent 贡献者**,提交 PR 前请完整阅读。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
- [Lincoln 的范围](#lincoln-的范围)
|
|
8
|
+
- [核心 vs 领域包边界](#核心-vs-领域包边界)
|
|
9
|
+
- [贡献者护栏(PR 硬性要求)](#贡献者护栏pr-硬性要求)
|
|
10
|
+
- [如何提交 Issue](#如何提交-issue)
|
|
11
|
+
- [如何提交 PR](#如何提交-pr)
|
|
12
|
+
- [本地开发环境](#本地开发环境)
|
|
13
|
+
- [测试分层约定](#测试分层约定)
|
|
14
|
+
- [修改 stage / skill / agent 契约时](#修改-stage--skill--agent-契约时)
|
|
15
|
+
- [如何新增工作流模板](#如何新增工作流模板)
|
|
16
|
+
- [如何新增 Agent 角色](#如何新增-agent-角色)
|
|
17
|
+
- [如何新增 Skill](#如何新增-skill)
|
|
18
|
+
- [如何新增 Harness 适配](#如何新增-harness-适配)
|
|
19
|
+
- [发布前验收](#发布前验收)
|
|
20
|
+
- [获得帮助](#获得帮助)
|
|
21
|
+
|
|
22
|
+
## Lincoln 的范围
|
|
23
|
+
|
|
24
|
+
Lincoln 的目标是为 AI-Native 研发工作流提供一套**可复用、可扩展、可审计**的元模型与基础设施。我们借鉴 superpowers 的核心零依赖原则,对范围保持严格纪律。
|
|
25
|
+
|
|
26
|
+
## 核心 vs 领域包边界
|
|
27
|
+
|
|
28
|
+
- **核心**:阶段/门控/路由器元模型 + 工作流引擎 + harness 适配器
|
|
29
|
+
- `.claude/stages/`
|
|
30
|
+
- `.claude/schemas/`
|
|
31
|
+
- `.claude/harnesses/`
|
|
32
|
+
- `.claude/hooks/`
|
|
33
|
+
- `.claude/settings.json`
|
|
34
|
+
- `scripts/`(通用基础设施脚本)
|
|
35
|
+
|
|
36
|
+
- **领域包**:垂直能力,属于可选扩展,不进入核心判断标准
|
|
37
|
+
- `interview-to-knowledge` 工作流
|
|
38
|
+
- `oss-first-design` 工作流
|
|
39
|
+
- `tools/lincoln-record/`
|
|
40
|
+
- 特定行业的 agent 角色或 skills
|
|
41
|
+
|
|
42
|
+
判断标准:**"这对完全不同项目的人有用吗?"** 如果答案为否,就不进核心。
|
|
43
|
+
|
|
44
|
+
**默认规则**:新能力优先做成独立 skill 或工作流模板,而不是修改核心元模型。
|
|
45
|
+
|
|
46
|
+
## 贡献者护栏(PR 硬性要求)
|
|
47
|
+
|
|
48
|
+
1. **PR 模板必填**:使用 `.github/pull_request_template.md`,逐项填写,不留空。
|
|
49
|
+
2. **先查重**:提交前搜索已有 issue/PR,确认不与进行中的工作重复(`gh pr list` / issue 搜索)。
|
|
50
|
+
3. **披露生成方式**:PR 描述中说明生成所用的模型、harness 与版本(如 `claude-fable-5 + Claude Code`)。
|
|
51
|
+
4. **一个 PR 只解决一个问题**:混合多个不相关改动的 PR 会被要求拆分。
|
|
52
|
+
5. **human_gate 不可跳过**:任何 PR 不得移除或绕过阶段门控与 human 确认环节。
|
|
53
|
+
6. **不手改生成产物**:codex / opencode 适配产物由 `scripts/lincoln-setup.py generate-harness` 自动生成,**不要手动编辑**。
|
|
54
|
+
7. **同步更新文档**:修改命令表、工作流、角色、skills 时,同步更新 `README.md`、`USAGE.md`、`.claude/workflows/README.md` 等用户/贡献者文档。
|
|
55
|
+
|
|
56
|
+
## 如何提交 Issue
|
|
57
|
+
|
|
58
|
+
1. 使用 `.github/ISSUE_TEMPLATE/` 中的模板。
|
|
59
|
+
2. 清晰描述问题、复现步骤、期望行为与实际行为。
|
|
60
|
+
3. 如果是功能请求,请先说明它解决了什么具体问题,以及为什么属于 Lincoln 的核心或推荐领域包。
|
|
61
|
+
4. 如果是文档问题,请标注 `documentation` 标签。
|
|
62
|
+
|
|
63
|
+
## 如何提交 PR
|
|
64
|
+
|
|
65
|
+
1. **Fork 仓库**(如果是外部贡献者)或从 `main` 切出 feature 分支。
|
|
66
|
+
2. **命名分支**:非 issue 驱动的小改动可用 `docs/xxx`、`fix/xxx`、`feat/xxx`;issue 驱动的改动使用 `issue-<N>`。
|
|
67
|
+
3. **小步提交**:每个 commit 只解决一个最小完整问题,commit message 遵循现有风格。
|
|
68
|
+
4. **本地验证**:
|
|
69
|
+
- 运行 `bash scripts/static-check.sh`
|
|
70
|
+
- 运行 `pytest tests/`
|
|
71
|
+
- 如果修改了 stage/skill/agent,运行 benchmark 并附前后对比
|
|
72
|
+
5. **填写 PR 模板**:逐项填写,不遗漏。
|
|
73
|
+
6. **等待审查**:维护者会进行 code review,必要时要求补充测试或文档。
|
|
74
|
+
7. **合并后**:如果是 issue 工作包,按 Lincoln 流程把过程知识同步到 `knowledge/` vault。
|
|
75
|
+
|
|
76
|
+
## 本地开发环境
|
|
77
|
+
|
|
78
|
+
### 必需依赖
|
|
79
|
+
|
|
80
|
+
- `python3` ≥ 3.10
|
|
81
|
+
- `node` ≥ 20
|
|
82
|
+
- `gh` CLI(已登录)
|
|
83
|
+
- `openspec` CLI
|
|
84
|
+
|
|
85
|
+
### 可选依赖
|
|
86
|
+
|
|
87
|
+
- `ffmpeg`(录音转写)
|
|
88
|
+
- Rust 工具链(`cargo`,构建 `tools/lincoln-record/`)
|
|
89
|
+
- `Pencil`(原型设计)
|
|
90
|
+
|
|
91
|
+
### 初始化
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
python3 scripts/init-project.sh
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
或使用新的全局 CLI:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npm install -g @sushanglewis/lincoln
|
|
101
|
+
lincoln install
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
旧版 `npx lincoln-install` 仍可用但已弃用。
|
|
105
|
+
|
|
106
|
+
### 运行测试
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# 全部测试
|
|
110
|
+
pytest tests/
|
|
111
|
+
|
|
112
|
+
# 基础设施测试
|
|
113
|
+
python3 scripts/run-infrastructure-tests.py
|
|
114
|
+
|
|
115
|
+
# 静态检查
|
|
116
|
+
bash scripts/static-check.sh
|
|
117
|
+
|
|
118
|
+
# README 约束
|
|
119
|
+
pytest tests/test_readme_natural_language.py
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 测试分层约定
|
|
123
|
+
|
|
124
|
+
- `tests/`:**确定性、非 LLM** 的契约与单元测试,进 CI(`static-check.sh`),必须全绿。
|
|
125
|
+
- benchmark / eval(`scripts/lincoln_benchmark*.py`):**LLM 行为评测**,慢且非确定,手动触发,不阻塞 CI。
|
|
126
|
+
|
|
127
|
+
新增测试时:
|
|
128
|
+
|
|
129
|
+
- 优先覆盖契约与边界条件,而不是端到端行为。
|
|
130
|
+
- 如果测试需要读取 `.claude/` 文件,使用项目根目录的相对路径,并在 `conftest.py` 中提供 fixtures。
|
|
131
|
+
- 不要引入需要外部 LLM 调用的测试到 `tests/`。
|
|
132
|
+
|
|
133
|
+
## 修改 stage / skill / agent 契约时
|
|
134
|
+
|
|
135
|
+
这些文件是"塑造 agent 行为的代码",按 eval 门禁规范修改:
|
|
136
|
+
|
|
137
|
+
1. 修改 `.claude/stages/*.yaml`、`.claude/skills/**`、`.claude/agents/**` 前后,跑一遍 benchmark,在 PR 描述中附前后对比(无回归)。
|
|
138
|
+
2. 升级外部 skills 的 pin(`dependencies.yaml`)时同样要求 benchmark 验证(见该文件头部注释的升级流程)。
|
|
139
|
+
3. 修改后运行 `python3 scripts/lincoln_command_map.py --refresh` 重新生成命令表,并运行相关测试。
|
|
140
|
+
|
|
141
|
+
## 如何新增工作流模板
|
|
142
|
+
|
|
143
|
+
1. 在 `.claude/workflows/` 创建 `<workflow-name>.yaml`,声明 `execution_mode: solo|team`。
|
|
144
|
+
2. 遵循 `.claude/schemas/workflow-template.schema.json` 的字段约定。
|
|
145
|
+
3. 运行 `python3 scripts/lincoln_command_map.py --refresh` 自动登记 `lc-wf-<name>` 命令。
|
|
146
|
+
4. 运行 `python3 scripts/lincoln-setup.py generate-harness --harness codex --harness opencode` 重新生成适配产物。
|
|
147
|
+
5. 在 `.claude/skills/lc-wf/SKILL.md` 的命令映射表中补充触发词。
|
|
148
|
+
6. 更新 `.claude/workflows/README.md` 的快速路由表与模板详解。
|
|
149
|
+
7. 如果该工作流面向最终用户,在 `USAGE.md` 中补充说明。
|
|
150
|
+
|
|
151
|
+
## 如何新增 Agent 角色
|
|
152
|
+
|
|
153
|
+
1. 在 `.claude/agents/` 创建 `<role>.md`,参考 `_contract.md` 与现有角色。
|
|
154
|
+
2. 明确角色的目标场景、可调用的 skills、不可越界的行为。
|
|
155
|
+
3. 运行 `python3 scripts/lincoln_command_map.py --refresh` 生成 `lc-agent-<role>` 命令。
|
|
156
|
+
4. 更新相关文档(`README.md`、`USAGE.md`、`.claude/workflows/README.md`)。
|
|
157
|
+
|
|
158
|
+
## 如何新增 Skill
|
|
159
|
+
|
|
160
|
+
1. 在 `.claude/skills/` 下创建目录或文件,包含 `SKILL.md` 与必要的 `prompts/`。
|
|
161
|
+
2. 如果依赖外部 skill,在 `.claude/skills/dependencies.yaml` 中声明并 pin 到固定 ref。
|
|
162
|
+
3. 运行 `python3 scripts/lincoln_command_map.py --refresh` 生成 `lc-skill-<name>` 命令。
|
|
163
|
+
4. 在 `.claude/stages/` 中需要引用该 skill 的阶段里更新 `skills` 字段。
|
|
164
|
+
5. 补充测试(如适用)和文档。
|
|
165
|
+
|
|
166
|
+
## 如何新增 Harness 适配
|
|
167
|
+
|
|
168
|
+
1. 在 `.claude/harnesses/` 创建 `<harness>.yaml` manifest。
|
|
169
|
+
2. 在 `scripts/lincoln-setup.py` 中注册该 harness 的生成逻辑(如果现有逻辑不覆盖)。
|
|
170
|
+
3. 运行 `python3 scripts/lincoln-setup.py generate-harness --harness <harness>`。
|
|
171
|
+
4. 运行 `pytest tests/test_lincoln_harness_adapter.py` 验证生成产物。
|
|
172
|
+
5. 确保新增 harness 默认关闭任何可能触发回退陷阱的能力(参考 codex `hooks: {}` 的处理)。
|
|
173
|
+
6. 更新 `USAGE.md` 中的多 harness 支持说明。
|
|
174
|
+
|
|
175
|
+
## 发布前验收
|
|
176
|
+
|
|
177
|
+
每次发布前,对每个已生成适配的 harness 各跑一遍:
|
|
178
|
+
|
|
179
|
+
| Harness | 一句话验收 |
|
|
180
|
+
|---------|-----------|
|
|
181
|
+
| Claude Code | 干净会话发「帮我开始一个新需求」 → 必须触发开场引导 / `lc-workflow-router`,并停在 clarify human_gate 前 |
|
|
182
|
+
| codex | 干净会话发同一句话 → `AGENTS.md` 契约生效、`lc-*` prompts 可用,且没有任何 hooks 被自动激活 |
|
|
183
|
+
| opencode | 干净会话发同一句话 → `.opencode/` 契约生效、`lc-*` 命令可用,且没有多余能力被默认开启 |
|
|
184
|
+
|
|
185
|
+
任何一条不满足,不得发布。
|
|
186
|
+
|
|
187
|
+
### 发布流程(维护者)
|
|
188
|
+
|
|
189
|
+
1. 确保所有 PR 已合并,`main` 分支测试全绿。
|
|
190
|
+
2. 运行 `python3 scripts/bump_version.py bump X.Y.Z`。
|
|
191
|
+
3. 运行 `python3 scripts/bump_version.py --check` 验证 lockstep。
|
|
192
|
+
4. 运行 `python3 scripts/package-lincoln-plugin.py check --check-dirty`。
|
|
193
|
+
5. 运行 `python3 scripts/package-lincoln-plugin.py package` 生成 `dist/lincoln-X.Y.Z.tar.gz`。
|
|
194
|
+
6. 创建 PR 合并 release 改动。
|
|
195
|
+
7. 在 `main` 上打 tag `vX.Y.Z` 并推送(release tarball 标签)。
|
|
196
|
+
8. 创建 GitHub Release 并上传 tarball。
|
|
197
|
+
9. 发布/更新 npm 包:
|
|
198
|
+
- 打 `lincoln-vX.Y.Z` 标签触发 `.github/workflows/publish-lincoln.yml`,发布 `@sushanglewis/lincoln`。
|
|
199
|
+
- 旧 `lincoln-install` / `lincoln-update` npm 包保持已弃用状态,不再主动发布。
|
|
200
|
+
|
|
201
|
+
### 从 vendored 模型迁移到全局插件模型
|
|
202
|
+
|
|
203
|
+
v1.6.0 起 Lincoln 切换为 `npm install -g @sushanglewis/lincoln` 全局分发。迁移既有项目:
|
|
204
|
+
|
|
205
|
+
1. 全局安装:`npm install -g @sushanglewis/lincoln && lincoln install --yes`
|
|
206
|
+
2. 进入项目根目录,运行 `lincoln migrate-project --dry-run` 预览将被删除的框架文件。
|
|
207
|
+
3. 确认后运行 `lincoln migrate-project --yes`:未修改的 vendored 框架文件会被删除,已修改/自定义文件保留,同时生成 `.lincoln.yaml`。
|
|
208
|
+
4. 提交变更。之后项目的 `.claude/`、`scripts/` 等框架文件由全局 payload 提供,项目侧只保留 `.lincoln.yaml`、`.context/`、`issue-*/` 等本地状态。
|
|
209
|
+
|
|
210
|
+
框架开发者若需要同时修改全局 payload,应在 Lincoln 仓库本身工作(该仓库通过自身的 `.lincoln.yaml` 保持自举)。
|
|
211
|
+
|
|
212
|
+
## 获得帮助
|
|
213
|
+
|
|
214
|
+
- 查看 [USAGE.md](USAGE.md) 了解 Lincoln 的使用方式。
|
|
215
|
+
- 查看 [CLAUDE.md](CLAUDE.md) 了解 Agent 契约与产物规范。
|
|
216
|
+
- 查看 [`.claude/workflows/README.md`](.claude/workflows/README.md) 了解工作流模板。
|
|
217
|
+
- 在 GitHub Discussions 或 Issues 中提问。
|
|
218
|
+
|
|
219
|
+
感谢你的贡献!
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 苏尚lewis (sushanglewis)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Lincoln — AI-Native R&D Workflow & Product-Engineering Collaboration System
|
|
2
|
+
|
|
3
|
+
> [中文](README.md) | English
|
|
4
|
+
|
|
5
|
+
Lincoln is an AI-Native R&D workflow system spanning **IDEs, agent harnesses, code hosting, knowledge management, skills, plugins, and automation**. It runs on **stages** for rhythm, **gates** for quality, and **repeatable SOPs** as its backbone, chaining requirements clarification, product design, prototyping, TDD planning, OpenSpec proposals, task splitting, implementation, and knowledge-base distillation into one human-AI collaborative pipeline.
|
|
6
|
+
|
|
7
|
+
- **Whole lifecycle, not a point tool**: every stage has explicit role, skill, and artifact contracts — agents step in at the right moments instead of replacing human judgment.
|
|
8
|
+
- **Disciplined, not bureaucratic**: stage gates, human gates, branch hygiene, and the dual-track knowledge model keep collaboration traceable, handoff-ready, and auditable.
|
|
9
|
+
- **Low-invasion and pluggable**: Lincoln blends into your project as a harness plugin — skills, hooks, workflow templates, and multi-harness adapters all extend along one meta-model.
|
|
10
|
+
|
|
11
|
+
## Latest Release
|
|
12
|
+
|
|
13
|
+
[](RELEASE.md)
|
|
14
|
+
|
|
15
|
+
**v1.6.0** is released: Lincoln switches to a global npm plugin model. Install with `npm install -g @sushanglewis/lincoln`; projects opt in via `.lincoln.yaml`.
|
|
16
|
+
|
|
17
|
+
See the full release notes in [RELEASE.md](RELEASE.md).
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
Open the repo and tell the Agent what you want in plain language. Lincoln will route to the right workflow automatically:
|
|
22
|
+
|
|
23
|
+
- **Start working on issue 55** → initializes the `issue-55` branch and work package, entering the `interview-to-knowledge` team workflow
|
|
24
|
+
- **Use existing-project-iteration to understand this codebase** → scans source code, builds the `knowledge/` function library, and plans the next iteration
|
|
25
|
+
- **Use design-spike to explore this idea** → clarifies requirements and produces a design review plus an interactive prototype
|
|
26
|
+
- **What's the current status?** → reports current stage, blocker, recommended skills, and next action
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
Lincoln is now distributed as a global npm plugin:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g @sushanglewis/lincoln
|
|
34
|
+
lincoln install
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`lincoln install` syncs the runtime framework to `~/.claude/`, `~/.codex/`, and `~/.opencode/`. Projects only need a `.lincoln.yaml` marker to opt in (empty directories won't activate Lincoln).
|
|
38
|
+
|
|
39
|
+
The legacy `npx lincoln-install` / `npx lincoln-update` wrappers are still present but deprecated; migrate to the global CLI.
|
|
40
|
+
|
|
41
|
+
First time? Read [USAGE.md](USAGE.md) for the full installation and usage guide.
|
|
42
|
+
|
|
43
|
+
## What Lincoln Can Do
|
|
44
|
+
|
|
45
|
+
### Stage-Driven Workflow Engine
|
|
46
|
+
|
|
47
|
+
Each stage is defined in `.claude/stages/<stage-id>.yaml` with its role, skills, gates, and artifacts. The `workflow-stage.yaml` runtime state drives agent context injection, while Lincoln's stage loader handles stage validation, artifact recording, and gate advancement.
|
|
48
|
+
|
|
49
|
+
### Preset SOP Workflow Templates
|
|
50
|
+
|
|
51
|
+
| Workflow | Scenario | Mode |
|
|
52
|
+
|----------|----------|------|
|
|
53
|
+
| `interview-to-knowledge` | From interview recordings to GitHub Issues to Obsidian knowledge distillation | team |
|
|
54
|
+
| `existing-project-iteration` | Existing source code: build knowledge first, then iterate | solo |
|
|
55
|
+
| `bug-fix` | Clear bug: lightweight design, fast fix | solo |
|
|
56
|
+
| `design-spike` | Requirements unclear: explore solutions and prototypes | solo |
|
|
57
|
+
| `oss-first-design` | Heavily reliant on open-source solutions: research first, then design | solo |
|
|
58
|
+
| `pm-research` | Systematic competitive/market/user/stakeholder research | solo |
|
|
59
|
+
|
|
60
|
+
See [`.claude/workflows/README.md`](.claude/workflows/README.md) for the full template catalog.
|
|
61
|
+
|
|
62
|
+
### Issue Work Packages (HTML Portal)
|
|
63
|
+
|
|
64
|
+
Every requirement maps to one GitHub issue and one Lincoln feature branch. The `issue-<N>/` work package contains:
|
|
65
|
+
|
|
66
|
+
- `index.html` — human-facing portal aggregating stage status, navigation, and artifacts
|
|
67
|
+
- `workflow-stage.yaml` — machine-readable state and handoff protocol
|
|
68
|
+
- `documents.yaml` — artifact index and human-approval status
|
|
69
|
+
- `pages/docs/` — HTML pages for requirements, PRDs, designs, TDD plans
|
|
70
|
+
- `pages/prototype/` — interactive HTML prototypes
|
|
71
|
+
- `handoffs/` — stage handoff documents
|
|
72
|
+
|
|
73
|
+
## Natural-Language Interaction
|
|
74
|
+
|
|
75
|
+
Lincoln is AI-Native — **you don't need to type terminal commands**. Describe your intent in plain language and the Agent translates and executes the right scripts for you.
|
|
76
|
+
|
|
77
|
+
| You say | Agent does |
|
|
78
|
+
|---------|------------|
|
|
79
|
+
| Start working on issue 55 | Initializes branch and work package, enters `interview-to-knowledge` |
|
|
80
|
+
| What's the current status? | Reports current stage, blocker, and next action |
|
|
81
|
+
| Record this stage's artifacts | Records artifacts and refreshes `documents.yaml` |
|
|
82
|
+
| Confirm and proceed | Marks the current gate as approved after explicit human confirmation |
|
|
83
|
+
| Generate handoff | Generates a handoff document |
|
|
84
|
+
| Check the Lincoln environment | Detects dependencies and lists missing items |
|
|
85
|
+
| List all active Lincoln branches | Lists stage status and blockers for every issue branch |
|
|
86
|
+
| Run benchmark | Generates a Lincoln session benchmark report |
|
|
87
|
+
| Start the PM research workflow | Enters the `pm-research` research chain |
|
|
88
|
+
|
|
89
|
+
More commands and usage details are in [USAGE.md](USAGE.md).
|
|
90
|
+
|
|
91
|
+
## Two Usage Modes
|
|
92
|
+
|
|
93
|
+
### Lightweight Solo Path (vibe-coding / indie maker)
|
|
94
|
+
|
|
95
|
+
Best for local projects and quick personal iteration. No GitHub issue required — just pick a workflow template and start. Artifacts land in the work-package directory, and you can upgrade to the team flow at any time.
|
|
96
|
+
|
|
97
|
+
### Team Issue Path (product / design / engineering / QA)
|
|
98
|
+
|
|
99
|
+
Every requirement uses a dedicated Lincoln feature branch named `issue-<N>`. Stage state travels with the branch; downstream roles check out the same branch and continue. Process documents stay on the feature branch and are **not merged to `main`** — only final code artifacts go through the PR.
|
|
100
|
+
|
|
101
|
+
Detailed walkthroughs are in [USAGE.md](USAGE.md).
|
|
102
|
+
|
|
103
|
+
## Tools
|
|
104
|
+
|
|
105
|
+
- `@sushanglewis/lincoln` — global CLI: `lincoln install`, `lincoln update`, `lincoln use`, `lincoln doctor`, `lincoln init-project`, `lincoln migrate-project`, `lincoln record`
|
|
106
|
+
- `tools/lincoln/` — Ink/React TUI for recording interviews (`lincoln-record` CLI)
|
|
107
|
+
- `tools/lincoln-record/` — Rust local recording & transcription CLI (whisper-rs + Metal, speaker diarization)
|
|
108
|
+
- `tools/lincoln-installer/` — legacy terminal TUI installer and updater (deprecated, kept for backward compatibility)
|
|
109
|
+
|
|
110
|
+
## Multi-harness Support
|
|
111
|
+
|
|
112
|
+
Lincoln's end-to-end logic — role contracts, stage workflows, and `lc-*` commands — can be derived for codex and opencode. `.claude/` is the single source of truth; harness artifacts are auto-generated by the adapter. **Never edit generated artifacts by hand.**
|
|
113
|
+
|
|
114
|
+
Tell the Agent "generate codex adapter" or "generate opencode adapter". Generated artifacts are gitignored (`AGENTS.md`, `.codex-plugin/`, `.opencode/`). CI validates that manifests can be generated and that local artifacts have not drifted.
|
|
115
|
+
|
|
116
|
+
## Extending and Contributing
|
|
117
|
+
|
|
118
|
+
Lincoln's `.claude/` is an open system-prompt layer. Contributions of new agent roles, skills, hooks, or workflow templates are welcome.
|
|
119
|
+
|
|
120
|
+
Before submitting a PR, please read:
|
|
121
|
+
|
|
122
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — contributor guardrails, core vs. domain boundaries, test layers, and eval gates
|
|
123
|
+
- [CLAUDE.md](CLAUDE.md) — agent contract, human-gate rules, and artifact conventions
|
|
124
|
+
- [`.claude/workflows/README.md`](.claude/workflows/README.md) — steps for adding new workflow templates
|
|
125
|
+
|
|
126
|
+
## Learn More
|
|
127
|
+
|
|
128
|
+
- [USAGE.md](USAGE.md) — complete user manual
|
|
129
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — contributor guide
|
|
130
|
+
- [RELEASE.md](RELEASE.md) — release notes and changelog
|
|
131
|
+
- [`.claude/workflows/README.md`](.claude/workflows/README.md) — workflow template catalog
|
|
132
|
+
- [OpenSpec docs](https://github.com/Fission-AI/openspec)
|
|
133
|
+
- [Obsidian WikiLinks](https://help.obsidian.md/Linking+notes+and+files/Internal+links)
|
|
134
|
+
|
|
135
|
+
## License
|
|
136
|
+
|
|
137
|
+
Lincoln is released under the [MIT License](LICENSE), Copyright (c) 2026 苏尚lewis (sushanglewis).
|
|
138
|
+
|
|
139
|
+
External skill, CLI, and plugin licenses are declared in [`.claude/skills/dependencies.yaml`](.claude/skills/dependencies.yaml) and [`.claude/agents/external/NOTICES.md`](.claude/agents/external/NOTICES.md).
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Lincoln — AI-Native 研发工作流与产研协作体系
|
|
2
|
+
|
|
3
|
+
> 中文 | [English](README.en.md)
|
|
4
|
+
|
|
5
|
+
Lincoln 是一个贯穿 **IDE、Agent Harness、代码托管、知识管理、技能、插件与自动化程序** 的 AI-Native 研发工作流体系。它以**阶段**为节奏、以**门控**为质量保障、以**可重复 SOP** 为骨架,把需求澄清、产品设计、原型、TDD 计划、OpenSpec 提案、任务拆分、研发实现和知识库沉淀串成一条可人机协作的流水线。
|
|
6
|
+
|
|
7
|
+
- **全流程,而非单点工具**:每个阶段都有明确的角色、技能与产物约定——Agent 在恰当的节点介入,而不是替代人的判断。
|
|
8
|
+
- **规范化,但不繁琐**:阶段门控、human gate、分支卫生,以及「过程文档留分支、耐用知识入 vault」的双轨机制,让协作可追溯、可交接、可审计。
|
|
9
|
+
- **低侵入、可插拔**:以 harness 插件的形态融入你的项目——技能、hooks、工作流模板与多 harness 适配沿同一元模型扩展,不要求你为它改造自己的项目。
|
|
10
|
+
|
|
11
|
+
## 最新版本
|
|
12
|
+
|
|
13
|
+
[](RELEASE.md)
|
|
14
|
+
|
|
15
|
+
**v1.6.0** 已发布:Lincoln 切换为全局 npm 插件模型,通过 `npm install -g @sushanglewis/lincoln` 安装,项目侧使用 `.lincoln.yaml` 选择性激活。
|
|
16
|
+
|
|
17
|
+
查看完整发布说明:[RELEASE.md](RELEASE.md)
|
|
18
|
+
|
|
19
|
+
## 快速开始
|
|
20
|
+
|
|
21
|
+
打开仓库后,直接用自然语言告诉 Agent 你的目标即可。Lincoln 会自动进入对应的工作流:
|
|
22
|
+
|
|
23
|
+
- **开始处理 issue 55** → 初始化 `issue-55` 分支与工作包,进入 `interview-to-knowledge` 团队工作流
|
|
24
|
+
- **使用 existing-project-iteration 理解这个代码库** → 扫描源码并生成 `knowledge/` 功能知识库,再规划下一个迭代
|
|
25
|
+
- **用 design-spike 探索这个想法** → 澄清需求并产出设计评审与可交互原型
|
|
26
|
+
- **现在什么状态** → 汇报当前阶段、等待对象、推荐技能与下一步动作
|
|
27
|
+
|
|
28
|
+
## 安装
|
|
29
|
+
|
|
30
|
+
Lincoln 现在以全局 npm 插件的形式分发:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g @sushanglewis/lincoln
|
|
34
|
+
lincoln install
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`lincoln install` 会把运行时框架同步到 `~/.claude/`、`~/.codex/`、`~/.opencode/`。项目侧只需一个 `.lincoln.yaml` 标记即可选择性激活(空目录不会触发 Lincoln)。
|
|
38
|
+
|
|
39
|
+
旧版 `npx lincoln-install` / `npx lincoln-update` 仍保留但已弃用,建议迁移到全局 CLI。
|
|
40
|
+
|
|
41
|
+
第一次使用?阅读 [USAGE.md](USAGE.md) 获取完整安装与使用指南。
|
|
42
|
+
|
|
43
|
+
## Lincoln 能做什么
|
|
44
|
+
|
|
45
|
+
### 阶段驱动的工作流引擎
|
|
46
|
+
|
|
47
|
+
每个阶段定义在 `.claude/stages/<stage-id>.yaml`,内含角色、可调用的技能、门控条件与产物要求。`workflow-stage.yaml` 作为运行时状态,由 Lincoln 的阶段加载器驱动阶段校验、产物记录与 gate 推进。
|
|
48
|
+
|
|
49
|
+
### 预设 SOP 工作流模板
|
|
50
|
+
|
|
51
|
+
| 工作流 | 场景 | 模式 |
|
|
52
|
+
|--------|------|------|
|
|
53
|
+
| `interview-to-knowledge` | 从访谈录音到 GitHub Issues 再到 Obsidian 知识库沉淀 | team |
|
|
54
|
+
| `existing-project-iteration` | 已有源码,先建知识库再迭代 | solo |
|
|
55
|
+
| `bug-fix` | 明确 bug,轻量设计后快速修复 | solo |
|
|
56
|
+
| `design-spike` | 需求尚不清晰,做方案预研或原型 | solo |
|
|
57
|
+
| `oss-first-design` | 强依赖开源方案,先调研再设计 | solo |
|
|
58
|
+
| `pm-research` | 体系化完成竞品/市场/用户/相关者研究 | solo |
|
|
59
|
+
|
|
60
|
+
完整模板说明见 [`.claude/workflows/README.md`](.claude/workflows/README.md)。
|
|
61
|
+
|
|
62
|
+
### Issue 工作包(HTML 门户)
|
|
63
|
+
|
|
64
|
+
每个需求对应一个 GitHub issue 和一个 Lincoln feature 分支。工作包目录 `issue-<N>/` 包含:
|
|
65
|
+
|
|
66
|
+
- `index.html` — 人读门户,聚合阶段状态、导航与产物
|
|
67
|
+
- `workflow-stage.yaml` — 机器状态与 handoff 协议
|
|
68
|
+
- `documents.yaml` — 产物索引与 human 确认状态
|
|
69
|
+
- `pages/docs/` — 需求、PRD、设计、TDD 计划等 HTML 页面
|
|
70
|
+
- `pages/prototype/` — 可交互原型 HTML 页面
|
|
71
|
+
- `handoffs/` — 阶段交接文档
|
|
72
|
+
|
|
73
|
+
## 自然语言交互
|
|
74
|
+
|
|
75
|
+
Lincoln 是 AI-Native 工作流——**你不需要在终端输入任何命令**。直接用自然语言描述意图,Agent 会自动翻译成对应脚本并代为执行。
|
|
76
|
+
|
|
77
|
+
| 你说 | Agent 做 |
|
|
78
|
+
|------|----------|
|
|
79
|
+
| 开始处理 issue 55 | 初始化分支与工作包,进入 `interview-to-knowledge` |
|
|
80
|
+
| 现在什么状态 | 汇报当前阶段、等待对象与下一步 |
|
|
81
|
+
| 提交本阶段产物 | 记录产物并刷新 `documents.yaml` |
|
|
82
|
+
| 确认通过 | 在人类 PM 显式确认后标记 gate 通过 |
|
|
83
|
+
| 生成交接 | 生成 handoff 文档 |
|
|
84
|
+
| 检查 Lincoln 环境 | 检测依赖并列出缺失项 |
|
|
85
|
+
| 列出所有活跃分支 | 列出所有 issue 分支的阶段状态与等待对象 |
|
|
86
|
+
| 运行 benchmark | 生成 Lincoln 会话基准评测报告 |
|
|
87
|
+
| 启动 PM 研究工作流 | 进入 `pm-research` 研究链路 |
|
|
88
|
+
|
|
89
|
+
更多命令与用法见 [USAGE.md](USAGE.md)。
|
|
90
|
+
|
|
91
|
+
## 两种使用方式
|
|
92
|
+
|
|
93
|
+
### 轻量个人路径(vibe-coding / 独立 maker)
|
|
94
|
+
|
|
95
|
+
适合本地项目、个人想法快速迭代。无需先建 GitHub issue,直接选择 workflow 模板即可开始。产物落在工作包目录下,可随时升级为团队流程。
|
|
96
|
+
|
|
97
|
+
### 团队 issue 路径(产品 / 设计 / 研发 / QA)
|
|
98
|
+
|
|
99
|
+
每个需求使用独立的 Lincoln feature 分支(命名约定 `issue-<N>`)。阶段状态随分支提交,下游角色 checkout 同一分支继续。过程文档不合并到 `main`,通过 PR 只合并最终代码产物。
|
|
100
|
+
|
|
101
|
+
详细路径说明见 [USAGE.md](USAGE.md)。
|
|
102
|
+
|
|
103
|
+
## 工具
|
|
104
|
+
|
|
105
|
+
- `@sushanglewis/lincoln` — 全局 CLI:`lincoln install`、`lincoln update`、`lincoln use`、`lincoln doctor`、`lincoln init-project`、`lincoln migrate-project`、`lincoln record`
|
|
106
|
+
- `tools/lincoln/` — 基于 Ink/React 的 TUI 录音前端(`lincoln-record` CLI)
|
|
107
|
+
- `tools/lincoln-record/` — Rust 本地录音转写 CLI(whisper-rs + Metal 加速、说话人分离)
|
|
108
|
+
- `tools/lincoln-installer/` — 旧版终端 TUI 安装器与更新器(已弃用,保留向后兼容)
|
|
109
|
+
|
|
110
|
+
## 多 harness 支持(codex / opencode)
|
|
111
|
+
|
|
112
|
+
Lincoln 的端到端逻辑(角色契约、阶段工作流、`lc-*` 命令)可适配到 codex 与 opencode。`.claude/` 是唯一事实源,各 harness 产物由适配器自动生成,**不要手改生成产物**。
|
|
113
|
+
|
|
114
|
+
需要对 Agent 说「生成 codex 适配」或「生成 opencode 适配」。生成产物不入 git,CI 会校验 manifest 可生成、本地产物未漂移。
|
|
115
|
+
|
|
116
|
+
## 扩展与贡献
|
|
117
|
+
|
|
118
|
+
Lincoln 的 `.claude/` 是开放的系统提示层,欢迎基于同一套元模型贡献新的 Agent 角色、skills、hooks 或工作流模板。
|
|
119
|
+
|
|
120
|
+
提交 PR 前请阅读:
|
|
121
|
+
|
|
122
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — 贡献者护栏、核心与领域包边界、测试分层与 eval 门禁规范
|
|
123
|
+
- [CLAUDE.md](CLAUDE.md) — Agent 契约、人类门控规则与产物规范
|
|
124
|
+
- [`.claude/workflows/README.md`](.claude/workflows/README.md) — 新增工作流模板的步骤
|
|
125
|
+
|
|
126
|
+
## 了解更多
|
|
127
|
+
|
|
128
|
+
- [USAGE.md](USAGE.md) — 完整用户手册
|
|
129
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — 贡献者指南
|
|
130
|
+
- [RELEASE.md](RELEASE.md) — 发布说明与 Changelog
|
|
131
|
+
- [`.claude/workflows/README.md`](.claude/workflows/README.md) — 工作流模板总览
|
|
132
|
+
- [OpenSpec 文档](https://github.com/Fission-AI/openspec)
|
|
133
|
+
- [Obsidian WikiLinks](https://help.obsidian.md/Linking+notes+and+files/Internal+links)
|
|
134
|
+
|
|
135
|
+
## License
|
|
136
|
+
|
|
137
|
+
Lincoln 本体以 [MIT License](LICENSE) 发布,Copyright (c) 2026 苏尚lewis (sushanglewis)。
|
|
138
|
+
|
|
139
|
+
外部 skills、CLI 与插件的许可证声明见 [`.claude/skills/dependencies.yaml`](.claude/skills/dependencies.yaml) 与 [`.claude/agents/external/NOTICES.md`](.claude/agents/external/NOTICES.md)。
|