Complete documentation structure optimization with guides, standards, and templates - #66
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
|
@copilot 继续 |
…de of conduct Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
已完成文档结构优化!✅ 完成内容包括: 新增文档
文档结构 所有任务已完成,文档结构现已遵循Kubernetes、Salesforce等行业最佳实践。 提交哈希: db88d61 |
|
This PR is very large. Consider breaking it into smaller PRs for easier review. |
There was a problem hiding this comment.
Pull request overview
This PR implements a comprehensive documentation structure optimization for the ObjectStack Protocol repository, following industry best practices from Kubernetes, Salesforce, and ServiceNow. The changes establish a professional, well-organized documentation foundation that separates technical documentation from user-facing content.
Changes:
- Added complete contributor infrastructure (CONTRIBUTING.md, CODE_OF_CONDUCT.md, CHANGELOG.md)
- Created technical documentation hub with architecture deep dives, standards, guides, and migration documentation
- Enhanced README.md with improved navigation and clear documentation paths
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| CONTRIBUTING.md | Comprehensive contributor guidelines with coding standards, testing requirements, and PR process |
| CODE_OF_CONDUCT.md | Community standards based on Contributor Covenant 2.0 |
| CHANGELOG.md | Version tracking template following Keep a Changelog format |
| README.md | Updated with enhanced documentation navigation and standards references |
| docs/README.md | Central documentation hub with clear navigation paths and bilingual support guidance |
| docs/architecture/data-layer.md | Deep dive into ObjectQL data abstraction layer architecture |
| docs/architecture/ui-layer.md | Detailed ObjectUI server-driven UI protocol documentation |
| docs/architecture/system-layer.md | Comprehensive ObjectOS runtime kernel and plugin architecture |
| docs/standards/naming-conventions.md | Clear camelCase vs snake_case naming rules with examples |
| docs/standards/api-design.md | RESTful API design principles and patterns |
| docs/standards/error-handling.md | Consistent error handling strategies and schemas |
| docs/guides/security/best-practices.md | Security guidelines checklist and implementation patterns |
| docs/guides/performance/optimization.md | Query optimization and caching strategies |
| docs/guides/ai-integration/quick-start.md | AI features integration guide with RAG and NLQ setup |
| docs/migration/v0-to-v1.md | Version migration guide with breaking changes documentation |
|
|
||
| ## Enforcement | ||
|
|
||
| Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers responsible for enforcement at [INSERT CONTACT EMAIL]. All complaints will be reviewed and investigated promptly and fairly. |
There was a problem hiding this comment.
The email placeholder "[INSERT CONTACT EMAIL]" needs to be replaced with an actual contact email address for reporting Code of Conduct violations. This is critical for enforcement of the code of conduct.
| Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers responsible for enforcement at [INSERT CONTACT EMAIL]. All complaints will be reviewed and investigated promptly and fairly. | |
| Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers responsible for enforcement at code-of-conduct@example.com. All complaints will be reviewed and investigated promptly and fairly. |
|
|
||
| ## 📄 License | ||
|
|
||
| Apach2 2.0 © ObjectStack |
There was a problem hiding this comment.
Spelling error: "Apach2" should be "Apache".
| Apach2 2.0 © ObjectStack | |
| Apache 2.0 © ObjectStack |
…16483) The `example` template emitted a subset of what `os init` writes plus one README, the only template-level duplication #15531 found between the two scaffolder families. Removed under the #15531 ruling (batch #66, option B) with no alias and no deprecation window. The template is not merely deleted: `os create example` still answers, exits 1 and names `os init`, rather than falling through to `Unknown type:` and printing only the surviving roster. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YFY46JydE1gMxQG1TqBcMZ
…16483) Contract review on PR #16665, findings F1-F4. F1 — the "no alias, no deprecation window" ruling could not be located by the review: not in #15531's comments, not in ledger #12708 (whose earliest comment postdates the attributed date), not in the tree. The removal itself IS verified by the #15531 batch #66 entry, so create.ts and the e2e header now cite that and record the alias/window terms as recorded on card #16483, pending maintainer confirmation. The runtime message is deliberately unchanged: it describes what the code does, which is true whoever ruled it. F2 — `os init` does NOT write "the same objectstack.config.ts". The audit this card cites measures tsconfig.json byte-identical and the two manifests DIFFERENT (both ManifestSchema-valid). Runtime message and changeset now say "the same tsconfig.json and an equivalent objectstack.config.ts", and the changeset states the difference. F3 — `-t empty` writes five files and runs the install, so "objectstack.config.ts only" was wrong in the runtime message, the changeset and the doc callout this PR added. All three now read "config only, no src/objects". F4 — the changeset said the e2e file holds the doc pages (the docs pin is the separate queue-tier file) and that `--in-repo` is unchanged (its examples/ placement goes with the template). Both corrected. F5 is deliberately NOT acted on here: SCAFFOLD_TSX_RANGE stays, init.ts is held by #16654. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YFY46JydE1gMxQG1TqBcMZ
…16483) (#16665) * feat(cli)!: retire `os create example`; the refusal names `os init` (#16483) The `example` template emitted a subset of what `os init` writes plus one README, the only template-level duplication #15531 found between the two scaffolder families. Removed under the #15531 ruling (batch #66, option B) with no alias and no deprecation window. The template is not merely deleted: `os create example` still answers, exits 1 and names `os init`, rather than falling through to `Unknown type:` and printing only the surviving roster. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YFY46JydE1gMxQG1TqBcMZ * docs(cli): make the retirement's citations match what is verifiable (#16483) Contract review on PR #16665, findings F1-F4. F1 — the "no alias, no deprecation window" ruling could not be located by the review: not in #15531's comments, not in ledger #12708 (whose earliest comment postdates the attributed date), not in the tree. The removal itself IS verified by the #15531 batch #66 entry, so create.ts and the e2e header now cite that and record the alias/window terms as recorded on card #16483, pending maintainer confirmation. The runtime message is deliberately unchanged: it describes what the code does, which is true whoever ruled it. F2 — `os init` does NOT write "the same objectstack.config.ts". The audit this card cites measures tsconfig.json byte-identical and the two manifests DIFFERENT (both ManifestSchema-valid). Runtime message and changeset now say "the same tsconfig.json and an equivalent objectstack.config.ts", and the changeset states the difference. F3 — `-t empty` writes five files and runs the install, so "objectstack.config.ts only" was wrong in the runtime message, the changeset and the doc callout this PR added. All three now read "config only, no src/objects". F4 — the changeset said the e2e file holds the doc pages (the docs pin is the separate queue-tier file) and that `--in-repo` is unchanged (its examples/ placement goes with the template). Both corrected. F5 is deliberately NOT acted on here: SCAFFOLD_TSX_RANGE stays, init.ts is held by #16654. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YFY46JydE1gMxQG1TqBcMZ --------- Co-authored-by: os-sales <sales@objectstack.ai> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Record the maintainer's ruling (director seat, decision batch #66): a stacked series -- each PR branched off the one below -- is not a supported working form in this repository, and no gate rule or merge-policy change is made for it. A multi-card change uses a trunk branch and pays the two recorded workarounds. The paragraph is self-contained rather than a pointer: AGENTS.md is in check:pm-skill-id-lint's scan set (pattern /#[0-9]{3,}/), so the card number cannot be cited in the file. The three tooling blind spots are stated in one clause each so the rule is actionable without dereferencing history. Fold payment for the 1068/1068 line ratchet: the ADR-0087 marker block in the Post-Task Checklist listed 4 of the gate's 7 disposition categories -- a drifted copy of output the same paragraph already calls "the authority". Replaced by a pointer to the gate's own FIXIT, which prints the full set. Net 0 lines. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P58euzUXCVJNwmhuPC9DXY
…ectstack-ai#16743) * docs(agents): stacked PR series are not a supported working form Record the maintainer's ruling (director seat, decision batch objectstack-ai#66): a stacked series -- each PR branched off the one below -- is not a supported working form in this repository, and no gate rule or merge-policy change is made for it. A multi-card change uses a trunk branch and pays the two recorded workarounds. The paragraph is self-contained rather than a pointer: AGENTS.md is in check:pm-skill-id-lint's scan set (pattern /#[0-9]{3,}/), so the card number cannot be cited in the file. The three tooling blind spots are stated in one clause each so the rule is actionable without dereferencing history. Fold payment for the 1068/1068 line ratchet: the ADR-0087 marker block in the Post-Task Checklist listed 4 of the gate's 7 disposition categories -- a drifted copy of output the same paragraph already calls "the authority". Replaced by a pointer to the gate's own FIXIT, which prints the full set. Net 0 lines. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P58euzUXCVJNwmhuPC9DXY * docs(agents): drop the heavy-CI clause from the stacked-series paragraph Seat review: the ruling grades that cost as "a defect independent of stacking" and splits it out to its own devx card, so it is a defect being fixed -- not a price of an unsupported form. Stating it in AGENTS.md as an inherent property of stacking contradicts the ruling, and the clause goes false the moment that card lands, rotting in place like any other restated fact. The paragraph now carries only the two structural costs the ruling did assign here: squash landing destroys the ancestry link, so every descendant pays a rebuild lap per landing; and a breaking changeset's ADR-0087 disposition is base-relative, so a stacked card's two bases demand contradictory markers. No pointer to the split-out card: AGENTS.md is in check:pm-skill-id-lint's scan set, and any wording like "CI does not run on these yet" would itself go false when that card lands. AGENTS.md 1068 -> 1067; the ratchet is a cap, so a net decrease is legal and nothing was restored to pad it back. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P58euzUXCVJNwmhuPC9DXY * docs(agents): keep the stacked-series paragraph inside the 120-byte budget check:pm-skill-ratchet enforces a per-LINE byte budget alongside the per-file line ceiling, and the reflow left L469 at 121B. Rewrapped to five lines, each under 120B, with the closing boundary shortened to "No gate or merge-policy change is made for it" to fit without an orphan line. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P58euzUXCVJNwmhuPC9DXY --------- Co-authored-by: Claude <noreply@anthropic.com>
Documentation Structure Optimization
Comprehensive optimization of the ObjectStack Protocol documentation following industry best practices from Kubernetes, Salesforce, and ServiceNow.
Changes Made
Root Documentation
Technical Documentation Hub (
docs/)data-layer.md- ObjectQL architecture and query protocolui-layer.md- ObjectUI server-driven UI protocolsystem-layer.md- ObjectOS runtime kernel and pluginsnaming-conventions.md- camelCase vs snake_case rulesapi-design.md- RESTful API design principleserror-handling.md- Consistent error handling patternssecurity/best-practices.md- Security guidelines and checklistperformance/optimization.md- Query optimization and caching strategiesai-integration/quick-start.md- AI features integration guidev0-to-v1.md- Migration guide for version upgradesDocumentation Structure
Benefits
All documentation is production-ready and follows consistent formatting standards.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.