You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(readme): add ClaudSkills link and normalize Chinese suffix (#797)
* docs(readme): add ClaudSkills author link
* docs(i18n): rename Chinese files to ZH suffix
* docs(contributing): require AI coauthor attribution
Regenerate the published website after updating site content.
Co-authored-by: Codex <[email protected]>
* docs(contributing): enforce website source synchronization
Require site sources and generated docs to ship together, and document how to trace pre-existing generated-output drift.
Co-authored-by: Codex <[email protected]>
---------
Co-authored-by: Codex <[email protected]>
-`documentation/adr/` – Architecture Decision Records (WRITE)
51
-
-`site-generator/content/` – Blog posts, courses, documentation (WRITE here to update website)
52
-
-`docs/` – Generated static website for GitHub Pages (READ only)
53
-
-`README.md` – Default project README (WRITE); keep `README_ES.md` and `README_CN.md` in sync when it changes
54
-
-`documentation/guides/GETTING-STARTED-*.md` – Getting-started documentation; English files are the master source, so keep matching `_ES.md` and `_CN.md` versions in sync when localized counterparts exist
51
+
-`site-generator/content/` – Blog posts, courses, documentation (WRITE here to update website; regenerate `docs/` in the same change)
52
+
-`docs/` – Generated static website for GitHub Pages (READ only; update only through the `site-update` Maven profile)
53
+
-`README.md` – Default project README (WRITE); keep `README_ES.md` and `README_ZH.md` in sync when it changes
54
+
-`documentation/guides/GETTING-STARTED-*.md` – Getting-started documentation; English files are the master source, so keep matching `_ES.md` and `_ZH.md` versions in sync when localized counterparts exist
1. Edit website sources under `site-generator/content/`, `site-generator/templates/`, or `site-generator/assets/`; never edit `docs/` directly.
102
+
2. Run `./mvnw clean generate-resources -pl site-generator -P site-update` in the same change whenever website sources change.
103
+
3. Review every generated `docs/` diff and verify it corresponds to a current source, template, or asset change.
104
+
4. If regeneration reveals output drift from a source change committed earlier, trace it with `git log` or `git blame`, retain the generated correction, and explain that provenance in the commit or pull request.
105
+
5. Commit the website source and generated `docs/` output together so GitHub Pages never lags behind its source.
106
+
99
107
## Git workflow
100
108
101
109
-**Conventional Commits**: Use conventional commit format for all commit messages
The [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec allows other types if your team agrees. **This repository’s commit-msg hook** accepts the types in the table above and requires a **scope** (see [`.pre-commit-config.yaml`](.pre-commit-config.yaml)).
119
127
128
+
### AI-assisted commits
129
+
130
+
When Cursor, Claude, Codex, or another AI tool authors or materially contributes to a commit, include a `Co-authored-by` trailer using the tool's documented Git identity:
131
+
132
+
```text
133
+
Co-authored-by: <tool-name> <tool-email>
134
+
```
135
+
136
+
Place the trailer after a blank line at the end of the commit message. Do not add an AI co-author when the tool only provided incidental assistance and did not contribute to the committed change.
137
+
120
138
### Pre-commit hooks (recommended)
121
139
122
140
This repository includes [pre-commit](https://pre-commit.com/) configuration at [`.pre-commit-config.yaml`](.pre-commit-config.yaml): YAML checks and a **commit-msg** hook that enforces the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) rules above (including a required **scope**).
@@ -137,6 +155,6 @@ pre-commit run conventional-pre-commit --hook-stage commit-msg --commit-msg-file
137
155
138
156
## Boundaries
139
157
140
-
- ✅ **Always do:** Edit XML in `skills-generator/src/main/resources/` (`skill-references/`, `skills/`) to change rules and skills, validate edited XML with `xmllint --noout <path-to-edited-file.xml>`, and run `./mvnw clean verify` before promoting changes. For local skill regeneration, use `./mvnw clean install -pl skills-generator` and test the generated output from `.agents/skills`; do not refresh `skills/` unless preparing an intentional release. For release skill changes, run `./mvnw clean install -pl skills-generator -P release`, then validate `skills/` with `npx skill-check@latest skills --no-security-scan --format github` and `skill-scanner scan-all ./skills --recursive --use-behavioral --policy strict --fail-on-severity high` when the scanner is available. When editing XML, follow PML Schema: [https://jabrena.github.io/pml/schemas/0.7.0/pml.xsd](https://jabrena.github.io/pml/schemas/0.7.0/pml.xsd). For complex changes, create OpenSpec proposals first. When you change `README.md`, update the translated READMEs (`README_ES.md`, `README_CN.md`) in the same change. When you change an English `documentation/guides/GETTING-STARTED-*.md` file, update the matching `_ES.md` and `_CN.md` files in the same change when they exist.
158
+
- ✅ **Always do:** Edit XML in `skills-generator/src/main/resources/` (`skill-references/`, `skills/`) to change rules and skills, validate edited XML with `xmllint --noout <path-to-edited-file.xml>`, and run `./mvnw clean verify` before promoting changes. For local skill regeneration, use `./mvnw clean install -pl skills-generator` and test the generated output from `.agents/skills`; do not refresh `skills/` unless preparing an intentional release. For release skill changes, run `./mvnw clean install -pl skills-generator -P release`, then validate `skills/` with `npx skill-check@latest skills --no-security-scan --format github` and `skill-scanner scan-all ./skills --recursive --use-behavioral --policy strict --fail-on-severity high` when the scanner is available. When editing XML, follow PML Schema: [https://jabrena.github.io/pml/schemas/0.7.0/pml.xsd](https://jabrena.github.io/pml/schemas/0.7.0/pml.xsd). For complex changes, create OpenSpec proposals first. When website sources change, regenerate and review `docs/`, then commit source and output together. When you change `README.md`, update the translated READMEs (`README_ES.md`, `README_ZH.md`) in the same change. When you change an English `documentation/guides/GETTING-STARTED-*.md` file, update the matching `_ES.md` and `_ZH.md` files in the same change when they exist.
141
159
- ⚠️ **Ask first:** Adding new XML rule files, modifying the XSLT stylesheet, changing site templates, architectural changes (use OpenSpec for planning)
142
160
- 🚫 **Never do:** Edit `.cursor/rules/` or `docs/` directly, commit secrets, skip tests before promoting, bypass OpenSpec for major changes
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
36
36
37
37
-**Documentation:**
38
38
- Improved project usage guidance in `README.md` and skills documentation (#732, #733)
39
-
- Added localized README translations (`README_ES.md`, `README_CN.md`) with a language switcher in `README.md`, refreshed the Goal statement, and documented sync requirements in `AGENTS.md`
39
+
- Added localized README translations (`README_ES.md`, `README_ZH.md`) with a language switcher in `README.md`, refreshed the Goal statement, and documented sync requirements in `AGENTS.md`
40
40
- Third-party tools and links documented in `documentation/THIRD-PARTIES.md` (#734)
Copy file name to clipboardExpand all lines: documentation/guides/GETTING-STARTED-AGENTS_ZH.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@
18
18
19
19
### 对 Skills 和 System prompts 的依赖
20
20
21
-
这些智能体假设你可以附加 **Skills**(见 [Java Skills 快速入门](GETTING-STARTED-SKILLS_CN.md))和/或 **Cursor rules**(见 [Getting started for System prompts for Java](GETTING-STARTED-SYSTEM-PROMPTS.md)),这样聊天中的 `@...` 引用才能解析。实现智能体会明确命名具体的 skill 前缀(例如 `@322-frameworks-spring-boot-testing-integration-tests`)。
21
+
这些智能体假设你可以附加 **Skills**(见 [Java Skills 快速入门](GETTING-STARTED-SKILLS_ZH.md))和/或 **Cursor rules**(见 [Getting started for System prompts for Java](GETTING-STARTED-SYSTEM-PROMPTS.md)),这样聊天中的 `@...` 引用才能解析。实现智能体会明确命名具体的 skill 前缀(例如 `@322-frameworks-spring-boot-testing-integration-tests`)。
0 commit comments