From 85af9dc60c33700bb2c0b89c1064d5b74f73eefb Mon Sep 17 00:00:00 2001 From: "John Paul E. Balandan, CPA" Date: Mon, 2 Feb 2026 19:35:27 +0800 Subject: [PATCH] chore: create instructions file for LLM to use in organic release announcements in the forum --- .ai/forum-announcement-instructions.md | 200 +++++++++++++++++++++++++ .gitattributes | 1 + 2 files changed, 201 insertions(+) create mode 100644 .ai/forum-announcement-instructions.md diff --git a/.ai/forum-announcement-instructions.md b/.ai/forum-announcement-instructions.md new file mode 100644 index 000000000000..7b42bbe841fe --- /dev/null +++ b/.ai/forum-announcement-instructions.md @@ -0,0 +1,200 @@ +# Forum Announcement Instructions + +## Purpose +These instructions guide the creation of forum announcements for new CodeIgniter4 releases using myBB formatting. + +## Process Overview + +### 1. Gather Information +Read the following source files: +- **CHANGELOG.md** - Main changelog with GitHub PR links +- **user_guide_src/source/changelogs/v{VERSION}.rst** - Detailed RST changelog with comprehensive explanations + +### 2. Version Strategy +For dual releases (e.g., maintenance + major): +- **List the maintenance version first** (e.g., v4.6.5 before v4.7.0) +- Clearly explain which version users should choose based on their PHP version +- Provide separate links for each version + +### 3. Announcement Structure + +Use this **example** structure with myBB formatting: + +``` +[size=x-large][b]CodeIgniter {VERSION} & {VERSION} Released![/b][/size] + +Introduction paragraph(s) - mention maintenance release first, then major release + +Links to GitHub releases and changelogs + +[hr] + +[size=large][b]Which Version Should I Use?[/b][/size] +- Guidance for users on which version to choose + +[hr] + +[size=large][b]What's in CodeIgniter {MAINTENANCE_VERSION}?[/b][/size] +- Bug fixes section (if maintenance release) + +[hr] + +[size=large][b]Highlights & New Features ({MAJOR_VERSION})[/b][/size] +- Top features + +[hr] + +[size=large][b]Notable Enhancements[/b][/size] +- Bulleted list of improvements + +[hr] + +[size=large][b]Cache Improvements[/b][/size] +- Cache-specific updates + +[hr] + +[size=large][b]Database & Model Updates[/b][/size] +- Database-related changes + +[hr] + +[size=large][b]HTTP & Request Features[/b][/size] +- HTTP/Request improvements + +[hr] + +[size=large][b]Security & Quality[/b][/size] +- Security updates + +[hr] + +[size=large][b]Breaking Changes[/b][/size] +- Detailed breaking changes with explanations +- Include "Removed Deprecated Items" subsection + +[hr] + +[size=large][b]Other Notable Changes[/b][/size] +- Other miscellaneous updates + +[hr] + +[size=large][b]Thanks to Our Contributors[/b][/size] +- Acknowledge contributors + +[hr] + +Upgrade guide links +Issue reporting link +Closing message + +[hr] + +AI disclosure note +``` + +### 4. myBB Formatting Codes + +Use these myBB codes: +- `[b]text[/b]` - Bold +- `[i]text[/i]` - Italic +- `[size=x-large]text[/size]` - Extra large text +- `[size=large]text[/size]` - Large text +- `[size=small]text[/size]` - Small text +- `[url=URL]text[/url]` - Links +- `[list]` - Unordered list +- `[list=1]` - Ordered list +- `[*]` - List item +- `[hr]` - Horizontal rule +- `` `code` `` - Inline code (use double backticks) + +### 4a. Emoticon Escaping + +myBB automatically converts emoticon patterns like `:s` (colon immediately followed by "s") into emoji. To prevent this in code blocks: + +**Replace all colons with HTML entity `:`** + +Examples: +- `Entity::setAttributes()` → `Entity::setAttributes()` +- `H:i:s` (time format) → `H:i:s` + +This prevents emoticon conversion while displaying properly as a colon character. + +### 5. Content Guidelines + +**Highlights Section:** +- Emphasize PHP version requirements +- Mark experimental features as [i]Experimental[/i] +- List 3-5 most impactful features + +**Enhancements:** +- Include specific config options and method names +- Use `` `code` `` for class names, methods, and config values +- Be specific about which handlers support which features + +**Breaking Changes:** +- Provide detailed explanations, not just bullet points +- Include the old behavior vs. new behavior +- Mention exception type changes +- List removed deprecated items separately +- Reference specific methods and properties + +**Bug Fixes (for maintenance releases):** +- Use ordered lists `[list=1]` +- Provide clear before/after descriptions + +### 6. Key Points + +1. **Tone:** Professional yet friendly, engaging for community (no emojis - they don't render properly in myBB) +2. **Accuracy:** Always cross-reference RST changelog for technical details +3. **Clarity:** Explain breaking changes thoroughly +4. **Contents:** Adjust sections based on the release content (e.g., skip "Cache Improvements" if no cache changes) +5. **Brevity:** For single releases, omit the "Which Version Should I Use?" section +6. **Links:** Include GitHub release links, changelogs, and upgrade guides +7. **Attribution:** Thank contributors by username +8. **Disclosure:** Add AI assistance disclosure at the end + +### 7. Version Priority + +For dual releases: +- Mention maintenance version (e.g., 4.6.5) **before** major version (e.g., 4.7.0) +- In "Which Version Should I Use?" section, list lower PHP version option first + +### 8. Final Disclosure + +Always include at the end: + +``` +[hr] + +[size=small][i]Note: This announcement was created with the assistance of GitHub Copilot (Claude Sonnet 4.5).[/i][/size] +``` + +Update the agent name as necessary. + +## Output File + +Save the announcement as: `v{VERSION}-announcement.txt` in the repository root + +## Example Workflow + +```bash +# 1. Read changelogs +Read: CHANGELOG.md +Read: user_guide_src/source/changelogs/v4.7.0.rst +Read: user_guide_src/source/changelogs/v4.6.5.rst (if maintenance release) + +# 2. Create announcement +Create: v4.7.0-announcement.txt + +# 3. Structure content +- Introduction with both versions +- Version selection guidance +- Maintenance release details first +- Major release details +- Breaking changes (comprehensive) +- Contributors +- Upgrade links +- AI disclosure +``` diff --git a/.gitattributes b/.gitattributes index 3f67f2e35167..91c62297637f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,6 +8,7 @@ .gitignore export-ignore # admin files +.ai/ export-ignore .github/ export-ignore admin/ export-ignore contributing/ export-ignore