From 8c0828d864f92dbf812d99b57b5763d4fa9bf3be Mon Sep 17 00:00:00 2001 From: "John Paul E. Balandan, CPA" Date: Mon, 9 Mar 2026 16:47:45 +0800 Subject: [PATCH] chore: convert forum announcement instruction as a proper agent skill --- .ai/forum-announcement-instructions.md | 200 --------------------- .gitattributes | 1 - .github/skills/README.md | 25 +++ .github/skills/forum-announcement/SKILL.md | 112 ++++++++++++ 4 files changed, 137 insertions(+), 201 deletions(-) delete mode 100644 .ai/forum-announcement-instructions.md create mode 100644 .github/skills/README.md create mode 100644 .github/skills/forum-announcement/SKILL.md diff --git a/.ai/forum-announcement-instructions.md b/.ai/forum-announcement-instructions.md deleted file mode 100644 index 7b42bbe841fe..000000000000 --- a/.ai/forum-announcement-instructions.md +++ /dev/null @@ -1,200 +0,0 @@ -# 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 91c62297637f..3f67f2e35167 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,7 +8,6 @@ .gitignore export-ignore # admin files -.ai/ export-ignore .github/ export-ignore admin/ export-ignore contributing/ export-ignore diff --git a/.github/skills/README.md b/.github/skills/README.md new file mode 100644 index 000000000000..1c641b9e335a --- /dev/null +++ b/.github/skills/README.md @@ -0,0 +1,25 @@ +# Skills + +This directory contains workspace agent skills for maintainers. + +## Available Skills +- `forum-announcement`: Create CodeIgniter4 release forum announcements in myBB format. + +## Structure +- `.github/skills//SKILL.md`: Skill metadata and workflow. +- `.github/skills//references/`: Optional supporting docs loaded on demand. +- `.github/skills//assets/`: Optional templates and reusable files. +- `.github/skills//scripts/`: Optional executables for automation. + +## Usage +1. Open Copilot Chat in this workspace. +2. Invoke `/`. +3. Provide inputs, for example: +``` +/forum-announcement 4.7.0 +``` + +## Maintainer Notes +- Keep `name` in `SKILL.md` identical to its folder name. +- Keep the `description` keyword-rich so the skill is discoverable. +- Use references only when needed; avoid duplicating guidance between `SKILL.md` and `references/`. diff --git a/.github/skills/forum-announcement/SKILL.md b/.github/skills/forum-announcement/SKILL.md new file mode 100644 index 000000000000..e9e7c731a1a3 --- /dev/null +++ b/.github/skills/forum-announcement/SKILL.md @@ -0,0 +1,112 @@ +--- +name: forum-announcement +description: 'Create CodeIgniter4 release forum announcements in myBB format. Use when preparing release posts, dual-version announcements (maintenance + major), changelog summaries, contributor acknowledgements, upgrade guidance, and final forum-ready text files.' +argument-hint: 'Target release version(s), e.g. "4.6.5 and 4.7.0" or "4.7.1"' +user-invocable: true +--- + +# Forum Announcement + +Create a forum-ready CodeIgniter4 release announcement using myBB markup. + +## When to Use +- Publish a new CodeIgniter4 release announcement on the forum. +- Convert changelog and RST details into a structured, readable post. +- Produce a dual-release announcement with maintenance-first ordering. + +## Inputs +- One version (`4.x.y`) or two versions (`maintenance`, then `major`). + +## Output Naming +- `v{VERSION}` is a placeholder and must be replaced by an actual version string. +- Single release example: `v4.7.1-announcement.txt`. +- Dual release example (`4.6.5` + `4.7.0`): use the major version filename `v4.7.0-announcement.txt`. +- Save the file at repository root. + +## Procedure +1. Read `CHANGELOG.md` for release summary and PR references. +2. Read `user_guide_src/source/changelogs/v{VERSION}.rst` for each target version. +3. Determine release mode: + - Single release: one `4.x.y` version. + - Dual release: maintenance + major; maintenance is presented first in the post. +4. Draft the post with this structure (remove sections that do not apply): + - Title. + - Intro paragraphs. + - Release links. + - Which version to use (dual release only). + - Maintenance release section (dual release only). + - Highlights and new features. + - Notable enhancements. + - Security and quality. + - Breaking changes. + - Other notable changes. + - Contributor thanks. + - Upgrade links, issue reporting link, closing. + - AI-assistance disclosure. +5. Apply myBB formatting and escaping rules in this file. +6. Save final content as `v{VERSION}-announcement.txt` at repository root, replacing `{VERSION}` with the actual version. + +## Required Announcement Template +```text +[size=x-large][b]CodeIgniter {VERSION} Released![/b][/size] + +Introduction paragraph(s) + +[url=RELEASE_URL]GitHub Release[/url] +[url=CHANGELOG_URL]Changelog[/url] + +[hr] + +[size=large][b]Highlights & New Features[/b][/size] + +[hr] + +[size=large][b]Notable Enhancements[/b][/size] + +[hr] + +[size=large][b]Breaking Changes[/b][/size] + +[hr] + +[size=large][b]Thanks to Our Contributors[/b][/size] + +[hr] + +[url=UPGRADE_GUIDE_URL]Upgrade Guide[/url] +[url=ISSUES_URL]Report Issues[/url] + +[hr] + +[size=small][i]Note: This announcement was created with the assistance of GitHub Copilot (GPT-5.3-Codex).[/i][/size] +``` + +For dual releases, adapt the title and body to include both versions, with maintenance version first, plus a dedicated "Which Version Should I Use?" section. + +## myBB Rules +- Use `[b]`, `[i]`, `[size=x-large]`, `[size=large]`, `[size=small]`, `[url=...]`, `[list]`, `[list=1]`, `[*]`, and `[hr]`. +- Use double backticks for inline code-like text when needed. +- Escape colon patterns that may trigger myBB emoticons by replacing `:` with `:` in code-like snippets. + +## Content Quality Rules +- Tone is professional, friendly, and community-facing. +- Do not use emojis. +- Verify details against RST changelog entries before finalizing. +- Explain breaking changes with old behavior versus new behavior. +- Include a "Removed Deprecated Items" subsection when applicable. +- For maintenance bug-fix summaries, prefer ordered lists with concise before/after statements. +- Thank contributors by GitHub username. +- Include upgrade links and issue reporting links. + +## Version Guidance Rules +- Dual releases must list maintenance before major. +- The "Which Version Should I Use?" section is required for dual releases. +- In version guidance, present the lower-PHP-support option first. +- For single releases, omit the "Which Version Should I Use?" section. + +## Self-Check +- Maintenance version is presented before major version. +- PHP-version guidance and upgrade links are included. +- Breaking changes are clearly explained. +- Final AI-assistance disclosure is present and should be adjusted to the actual AI model used if different from the template. +- Output filename is concrete and does not include braces.