Skip to content

Commit 1a9ee06

Browse files
committed
fix: 修复合并冲突并恢复构建
2 parents d538944 + 6ab8347 commit 1a9ee06

2,249 files changed

Lines changed: 127377 additions & 47294 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/teach-me/SKILL.md

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ All teach-me data is stored under `.claude/skills/teach-me/records/`:
4141
.claude/skills/teach-me/records/
4242
├── learner-profile.md # Cross-topic notes (created on first session)
4343
└── {topic-slug}/
44-
└── session.md # Learning state: concepts, status, notes
44+
├── session.md # Learning state: concepts, status, notes
45+
└── {topic-slug}-notes.md # Learner-facing summary notes (generated at session end)
4546
```
4647

4748
**Slug**: Topic in kebab-case, 2-5 words. Example: "Python decorators" → `python-decorators`
@@ -275,7 +276,8 @@ Update `session.md` after each round:
275276
When all concepts mastered or user ends session:
276277

277278
1. Update `session.md` with final state.
278-
2. Update `.claude/skills/teach-me/records/learner-profile.md` (keep under 30 lines):
279+
2. **Generate learner-facing notes** — write `{topic-slug}-notes.md` in the topic directory. This is a standalone reference document the learner can review later. See "Notes Generation" below for format.
280+
3. Update `.claude/skills/teach-me/records/learner-profile.md` (keep under 30 lines):
279281

280282
```markdown
281283
# Learner Profile
@@ -293,7 +295,48 @@ Updated: {timestamp}
293295
- Python decorators (8/10 concepts, 2025-01-15)
294296
```
295297

296-
3. Give a brief text summary of what was covered, key insights, and areas for further study.
298+
4. Give a brief text summary of what was covered, key insights, and areas for further study.
299+
300+
## Notes Generation
301+
302+
At session end, generate a learner-facing notes file at `{topic-slug}/{topic-slug}-notes.md`. This file is **written for the learner to review later**, not for the tutor. It should be self-contained and organized as a quick-reference.
303+
304+
### Notes Structure
305+
306+
```markdown
307+
# {Topic} 核心笔记
308+
309+
## 1. {Section Name}
310+
{Key concept, mechanism, or principle}
311+
* **One-line summary**: {what it does / why it matters}
312+
* **Detail**: {brief explanation, 2-4 sentences max}
313+
* **Example** (if applicable): {code snippet, command, or concrete scenario}
314+
315+
---
316+
317+
## 2. {Section Name}
318+
...
319+
320+
---
321+
322+
## n. 实战参数 / Cheat Sheet (if applicable)
323+
{Practical commands, config, or quick-reference table}
324+
325+
| Parameter / Concept | What it does | Tuning tip |
326+
|---------------------|-------------|------------|
327+
| ... | ... | ... |
328+
```
329+
330+
### Notes Writing Rules
331+
332+
1. **Start with "what & why"** before "how". Each section should answer: what is this, why does it exist, what problem does it solve.
333+
2. **Use analogies sparingly but effectively**. Only include an analogy if it clarifies a non-obvious mechanism (e.g., "PagedAttention is like OS virtual memory paging").
334+
3. **Include trade-offs**. Every optimization or design choice has a cost. Always state it (e.g., "TP improves throughput but increases communication latency").
335+
4. **Code / command examples should be minimal**. Under 10 lines, self-contained, with comments explaining the key flags.
336+
5. **Organize by concept dependency**, not by chronological teaching order. Foundation concepts first, advanced ones last.
337+
6. **No quiz questions, no misconceptions, no tutor-side notes**. This is a clean reference document.
338+
7. **Language matches the session**. If the session was in Chinese, notes are in Chinese (technical terms can stay in English).
339+
8. **Keep it under 150 lines**. If it gets too long, the learner won't review it. Be ruthless about cutting fluff.
297340

298341
## Resuming Sessions
299342

.githooks/pre-commit

Lines changed: 0 additions & 22 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
jobs:
1010
ci:
11-
runs-on: macos-latest
11+
runs-on: ubuntu-latest
1212

1313
steps:
1414
- uses: actions/checkout@v4
@@ -20,8 +20,19 @@ jobs:
2020
- name: Install dependencies
2121
run: bun install --frozen-lockfile
2222

23-
- name: Test
24-
run: bun test
23+
- name: Type check
24+
run: bun run typecheck
25+
26+
- name: Test with Coverage
27+
run: |
28+
set -o pipefail
29+
bun test --coverage --coverage-reporter=lcov 2>&1 | grep -vE '^\s*(\(pass\)|\(skip\))' | sed '/^.*\/__tests__\/.*:$/d' | cat -s
30+
31+
- name: Upload coverage to Codecov
32+
uses: codecov/codecov-action@v5
33+
with:
34+
file: ./coverage/lcov.info
35+
token: ${{ secrets.CODECOV_TOKEN }}
2536

2637
- name: Build
27-
run: bun run build
38+
run: bun run build:vite

.github/workflows/publish-npm.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Publish to npm
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
workflow_dispatch:
8+
inputs:
9+
version:
10+
description: '版本号 (例如: v1.9.0)'
11+
required: true
12+
type: string
13+
14+
permissions:
15+
contents: write
16+
packages: write
17+
id-token: write
18+
19+
jobs:
20+
publish:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v4
24+
with:
25+
ref: ${{ github.event.inputs.version || github.ref }}
26+
27+
- uses: actions/setup-node@v6
28+
with:
29+
node-version: "24"
30+
registry-url: "https://registry.npmjs.org"
31+
32+
- name: Setup Bun
33+
uses: oven-sh/setup-bun@v2
34+
with:
35+
bun-version: latest
36+
37+
- name: Install dependencies
38+
run: bun install --frozen-lockfile
39+
- name: Type check
40+
run: bun run typecheck
41+
42+
- name: Run tests
43+
run: bun test
44+
45+
- name: Publish to npm
46+
run: npm publish --provenance --access public
47+
env:
48+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
49+
50+
- name: Generate changelog
51+
id: changelog
52+
run: |
53+
VERSION="${{ github.event.inputs.version || github.ref_name }}"
54+
PREV_TAG=$(git tag --sort=-version:refname | grep -v "^${VERSION#v}$" | head -1)
55+
56+
if [ -n "$PREV_TAG" ]; then
57+
COMMITS=$(git log "${PREV_TAG}..${VERSION}" --pretty=format:"- %s (%h)" --no-merges)
58+
else
59+
COMMITS=$(git log --pretty=format:"- %s (%h)" --no-merges -20)
60+
fi
61+
62+
{
63+
echo "commits<<EOF"
64+
echo "$COMMITS"
65+
echo "EOF"
66+
} >> "$GITHUB_OUTPUT"
67+
68+
- name: Create GitHub Release
69+
uses: softprops/action-gh-release@v2
70+
with:
71+
name: ${{ github.event.inputs.version || github.ref_name }}
72+
body: |
73+
## What's Changed
74+
75+
${{ steps.changelog.outputs.commits }}
76+
77+
**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ github.event.inputs.version || github.ref_name }}^...${{ github.event.inputs.version || github.ref_name }}
78+
draft: false
79+
prerelease: ${{ contains(github.event.inputs.version || github.ref_name, 'rc') || contains(github.event.inputs.version || github.ref_name, 'beta') || contains(github.event.inputs.version || github.ref_name, 'alpha') }}

.github/workflows/update-contributors.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
name: Update Contributors
22

33
on:
4-
push:
5-
branches:
6-
- main
74
schedule:
8-
- cron: '0 0 * * *' # 每天更新一次
5+
- cron: '0 0 * * 1' # 每周一更新一次
96

107
permissions:
118
contents: write

.gitignore

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,18 @@ src/utils/vendor/
1212

1313
# AI tool runtime directories
1414
.agents/
15-
.codex/
15+
.claude/
1616
.omx/
17-
17+
.docs/task/
1818
# Binary / screenshot files (root only)
1919
/*.png
2020
*.bmp
2121

22+
# Internal system prompt documents
23+
Claude-Opus-*.txt
24+
Claude-Sonnet-*.txt
25+
Claude-Haiku-*.txt
26+
2227
# Agent / tool state dirs
2328
.swarm/
2429
.agents/__pycache__/
@@ -29,3 +34,15 @@ __pycache__/
2934
logs
3035

3136
data
37+
.omc
38+
.codex/*
39+
!.codex/agents/
40+
!.codex/agents/**
41+
!.codex/skills/
42+
!.codex/skills/**
43+
.codex/skills/.system/**
44+
!.codex/prompts/
45+
!.codex/prompts/**
46+
teach-me
47+
build/
48+
*.bun-build

.impeccable.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Impeccable Design Context
2+
3+
## Users
4+
5+
**Primary**: Technical teams and enterprises using AI-assisted coding in production workflows.
6+
- DevOps engineers managing remote agents via RCS dashboard
7+
- Development teams collaborating through shared sessions
8+
- Individual developers using terminal CLI daily
9+
10+
**Context**: Used during focused work sessions — debugging, code review, agent orchestration. Users are in "get things done" mode, not browsing. They value efficiency but also appreciate warmth and personality.
11+
12+
**Job to be done**: Make advanced AI coding tools accessible and controllable, especially features that normally require enterprise accounts or Anthropic OAuth.
13+
14+
## Brand Personality
15+
16+
**3 words**: Warm, Considered, Human
17+
18+
**Voice**: Like a knowledgeable colleague who's genuinely enthusiastic about the craft — not a corporate product manager. Community-first, open, slightly playful. Chinese developer community culture (贴吧/discord 温暖氛围).
19+
20+
**Emotional goals**: Confidence (this tool is solid), Warmth (this community is welcoming), Delight (small moments of personality make the difference).
21+
22+
**References**:
23+
- **Anthropic's own design language** — their clean, considered aesthetic with warm undertones. The terra cotta/burnt orange as a human accent. Lots of breathing room. Typography-forward.
24+
- **NOT**: Generic AI product (no ChatGPT blue, no gradient text, no "AI slop"). NOT corporate SaaS (no Salesforce-blue dashboards, no enterprise sterility).
25+
26+
**Anti-references**: Corporate enterprise dashboards, generic AI product pages, anything that looks like it was "designed by committee."
27+
28+
## Aesthetic Direction
29+
30+
**Theme**: Light + Dark dual mode (user/system preference switch)
31+
32+
**Tone**: Anthropomorphic warmth meets terminal precision. The brand orange (Claude's terra cotta) is the thread that ties everything together — it's the human element in a technical world.
33+
34+
**Typography**: Clean, considered, with good hierarchy. Terminal-native for CLI; modern web fonts for Web UI (RCS dashboard, docs). Favor readability and personality.
35+
36+
**Color**:
37+
- Primary: Claude orange family (`#D77757` / terra cotta)
38+
- Accent: Warm neutrals tinted toward orange
39+
- Semantic: Success/Error/Warning following Anthropic's established palette
40+
- Dark mode: Warm dark surfaces (not cold blue-black)
41+
42+
**Differentiation**: The CCB brand sits at the intersection of "serious tool" and "community project." It should feel like Anthropic's design principles applied to an open-source context — less corporate polish, more human craft. The mascot "Clawd" and the playful "踩踩背" naming hint at personality that the design should honor.
43+
44+
**Scope**: All Web UI — RCS control panel, documentation site, landing pages.
45+
46+
## Design Principles
47+
48+
1. **Considered over clever** — Every design choice should feel intentional, not trendy. If it doesn't serve the user, it doesn't ship.
49+
2. **Warmth through subtlety** — Orange tints on neutrals, breathing room in layouts, personality in copy. Not giant emoji or aggressive color.
50+
3. **Density with clarity** — Technical users need information density, but not chaos. Every pixel earns its place.
51+
4. **Community voice** — The design should feel like it was made by people who use it, not by a distant design team. Slightly rough edges are fine if they're honest.
52+
5. **Anthropic's shadow** — When in doubt, follow Anthropic's design instincts — the clean layouts, the generous spacing, the warm color temperature. Then add the community touch.
53+
54+
## Existing Design Assets
55+
56+
### Brand Colors (from theme system)
57+
- Claude Orange: `rgb(215,119,87)` / `#D77757`
58+
- Claude Blue: `rgb(87,105,247)` / `#5769F7`
59+
- Permission Blue: `rgb(87,105,247)`
60+
- Auto Accept Violet: `rgb(135,0,255)`
61+
- Plan Mode Teal: `rgb(0,102,102)`
62+
- Success: `rgb(78,186,101)`
63+
- Error: `rgb(255,107,128)`
64+
- Warning: `rgb(255,193,7)`
65+
66+
### Logo
67+
- CCB text + orange play button icon
68+
- Dark/Light SVG variants in `docs/logo/`
69+
- Favicon: Orange circle `#D97706` with white play triangle
70+
71+
### Mascot
72+
- "Clawd" — terminal-art character with multiple poses
73+
- Theme-aware coloring
74+
75+
### Theme System
76+
- 7 variants: dark, light, dark-ansi, light-ansi, dark-daltonized, light-daltonized, auto
77+
- 89+ semantic color tokens
78+
- Full documentation in `packages/@ant/ink/docs/04-theme-system.md`

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
registry=https://registry.npmjs.org/

0 commit comments

Comments
 (0)