Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e65d07a4f | ||
|
|
84952ff2d1 | ||
|
|
6300b687aa | ||
|
|
136f07d9c4 | ||
|
|
40ebbce1cc | ||
|
|
af11f827c4 | ||
|
|
bfd2d4b063 | ||
|
|
6e95542ac5 | ||
|
|
baa2a050d3 | ||
|
|
61ca9d4768 | ||
|
|
3d1bf9d113 | ||
|
|
348eb872a8 | ||
|
|
6554392dd6 | ||
|
|
ce96ea2e96 | ||
|
|
445d022232 | ||
|
|
2481d63561 |
No files matched your search
@@ -16,7 +16,7 @@ git checkout -b fix/bug-description
|
|||||||
|
|
||||||
Use a descriptive name that clearly indicates what bug is being fixed. If there's an issue number, include it in the branch name (e.g., `fix/123-plugin-activation-error`).
|
Use a descriptive name that clearly indicates what bug is being fixed. If there's an issue number, include it in the branch name (e.g., `fix/123-plugin-activation-error`).
|
||||||
|
|
||||||
For more detailed git workflow guidelines, see **@.ai-workflows/git-workflow.md**.
|
For more detailed git workflow guidelines, see **@.agents/git-workflow.md**.
|
||||||
|
|
||||||
### 2. Understand the Bug
|
### 2. Understand the Bug
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ After fixing a bug and confirming it works, determine the appropriate version in
|
|||||||
|
|
||||||
This approach is more time-efficient as it allows you to focus on fixing the bug without worrying about version updates until the fix is confirmed working.
|
This approach is more time-efficient as it allows you to focus on fixing the bug without worrying about version updates until the fix is confirmed working.
|
||||||
|
|
||||||
For detailed guidelines on time-efficient development and testing, see **@.ai-workflows/incremental-development.md**.
|
For detailed guidelines on time-efficient development and testing, see **@.agents/incremental-development.md**.
|
||||||
|
|
||||||
## Testing Previous Versions
|
## Testing Previous Versions
|
||||||
|
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
# Code Quality Checks Workflow
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This document is intended for plugin developers and code reviewers working on this repository. It outlines the process for ensuring code quality before pushing changes to the repository. Following these steps will help catch issues early and save time in the review process.
|
||||||
|
|
||||||
|
## Pre-Push Checklist
|
||||||
|
|
||||||
|
Before pushing your changes to the repository, run through the following checks:
|
||||||
|
|
||||||
|
1. **Run Unit Tests**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer test
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensure all tests pass. If any tests fail, resolve the issues before proceeding.
|
||||||
|
|
||||||
|
2. **Run PHP CodeSniffer**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer phpcs
|
||||||
|
```
|
||||||
|
|
||||||
|
This will check your code against WordPress coding standards. Fix any issues before proceeding.
|
||||||
|
|
||||||
|
3. **Run PHP Code Beautifier and Fixer**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer phpcbf
|
||||||
|
```
|
||||||
|
|
||||||
|
This will automatically fix many coding standard issues.
|
||||||
|
|
||||||
|
4. **Run PHPStan**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer phpstan
|
||||||
|
```
|
||||||
|
|
||||||
|
This will perform static analysis on your code to find potential bugs and issues.
|
||||||
|
|
||||||
|
5. **Run PHP Mess Detector**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer phpmd
|
||||||
|
```
|
||||||
|
|
||||||
|
This will check for potential problems like unused variables, empty catch blocks, etc.
|
||||||
|
|
||||||
|
## Common Issues and How to Fix Them
|
||||||
|
|
||||||
|
### 1. Inline Comments
|
||||||
|
|
||||||
|
All inline comments must end with proper punctuation (period, exclamation mark, or question mark).
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Incorrect comment
|
||||||
|
$var = true;
|
||||||
|
|
||||||
|
// Correct comment.
|
||||||
|
$var = true;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Superglobal Access
|
||||||
|
|
||||||
|
Never access superglobals like `$_GET`, `$_POST`, etc. directly. Always use WordPress functions to sanitize and validate input.
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Incorrect
|
||||||
|
$page = $_GET['page'];
|
||||||
|
|
||||||
|
// Correct
|
||||||
|
$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||||
|
|
||||||
|
// For testing environments
|
||||||
|
if (defined('PHPUNIT_RUNNING') && PHPUNIT_RUNNING) {
|
||||||
|
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This rule is ignored in tests to allow direct access for testing purposes
|
||||||
|
$page = isset($_GET['page']) ? wp_unslash($_GET['page']) : '';
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Avoid Unnecessary Else Clauses
|
||||||
|
|
||||||
|
Simplify your code by avoiding unnecessary else clauses.
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Less preferred
|
||||||
|
if (condition) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preferred
|
||||||
|
if (condition) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Proper Function Spacing
|
||||||
|
|
||||||
|
Ensure proper spacing in function calls and declarations.
|
||||||
|
|
||||||
|
```php
|
||||||
|
// Incorrect
|
||||||
|
function_name($param1,$param2);
|
||||||
|
|
||||||
|
// Correct
|
||||||
|
function_name( $param1, $param2 );
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Naming Conventions
|
||||||
|
|
||||||
|
Follow WordPress naming conventions:
|
||||||
|
|
||||||
|
* Functions and variables: snake_case with plugin-specific prefix (e.g., `myplugin_function_name`)
|
||||||
|
* Classes: CamelCase
|
||||||
|
* Constants: UPPERCASE_WITH_UNDERSCORES with plugin-specific prefix (e.g., `MYPLUGIN_CONSTANT_NAME`)
|
||||||
|
|
||||||
|
## Automated Checks in CI/CD
|
||||||
|
|
||||||
|
Our CI/CD pipeline includes the following automated checks:
|
||||||
|
|
||||||
|
1. **CodeFactor**: Analyzes code quality and style
|
||||||
|
2. **Codacy**: Performs static code analysis
|
||||||
|
3. **SonarCloud**: Checks for code smells, bugs, and security vulnerabilities
|
||||||
|
4. **CodeRabbit**: Provides AI-powered code review
|
||||||
|
|
||||||
|
Although CI runs these checks, catching issues locally helps save time and minimize follow-up commits.
|
||||||
|
|
||||||
|
## Using AI to Help with Code Quality
|
||||||
|
|
||||||
|
You can use AI assistants to help improve code quality:
|
||||||
|
|
||||||
|
1. Run the code quality checks locally
|
||||||
|
2. If issues are found, ask the AI assistant to help fix them
|
||||||
|
3. Apply the suggested fixes
|
||||||
|
4. Run the checks again to verify the issues are resolved
|
||||||
|
|
||||||
|
Example prompt:
|
||||||
|
|
||||||
|
```text
|
||||||
|
I ran PHPCS and got the following errors. Can you help me fix them?
|
||||||
|
|
||||||
|
[Paste error output here]
|
||||||
|
```
|
||||||
|
|
||||||
|
For more AI assistance guidelines, see the [AI Assistant Guide](./../AGENTS.md).
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
This workflow helps maintain high code quality and accelerates the review process. Remember, it's always more efficient to resolve issues locally than to go through multiple rounds of CI/CD and code review.
|
||||||
@@ -61,6 +61,8 @@ When reviewing code, check for the following:
|
|||||||
|
|
||||||
This project uses several automated code review tools to maintain high code quality standards. These tools are free to use for public repositories and should be integrated into any new repositories based on this template.
|
This project uses several automated code review tools to maintain high code quality standards. These tools are free to use for public repositories and should be integrated into any new repositories based on this template.
|
||||||
|
|
||||||
|
**Important**: Before pushing your code, run the local code quality checks as described in the [Code Quality Checks Workflow](./code-quality-checks.md) to catch issues early.
|
||||||
|
|
||||||
### 1. CodeRabbit
|
### 1. CodeRabbit
|
||||||
|
|
||||||
[CodeRabbit](https://www.coderabbit.ai/) is an AI-powered code review tool that provides automated feedback on pull requests.
|
[CodeRabbit](https://www.coderabbit.ai/) is an AI-powered code review tool that provides automated feedback on pull requests.
|
||||||
@@ -31,9 +31,9 @@ This document serves as a persistent memory for developer preferences establishe
|
|||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
- Prefer token-efficient documentation in `.ai-assistant.md` that references `.ai-workflows/` files
|
- Prefer token-efficient documentation in `AGENTS.md` that references `.agents/` files
|
||||||
- Document the release workflow in `.ai-assistant.md` and `.ai-workflows/release-process.md`
|
- Document the release workflow in `AGENTS.md` and `.agents/release-process.md`
|
||||||
- Store environment variable documentation in `.ai-workflows/local-env-vars.md`
|
- Store environment variable documentation in `.agents/local-env-vars.md`
|
||||||
- Maintain consistent documentation across readme.txt, README.md, and CHANGELOG.md
|
- Maintain consistent documentation across readme.txt, README.md, and CHANGELOG.md
|
||||||
|
|
||||||
### Asset Organization
|
### Asset Organization
|
||||||
@@ -16,7 +16,7 @@ git checkout -b feature/descriptive-name
|
|||||||
|
|
||||||
Use a descriptive name that clearly indicates what the feature is about. If there's an issue number, include it in the branch name (e.g., `feature/123-update-source-selector`).
|
Use a descriptive name that clearly indicates what the feature is about. If there's an issue number, include it in the branch name (e.g., `feature/123-update-source-selector`).
|
||||||
|
|
||||||
For more detailed git workflow guidelines, see **@.ai-workflows/git-workflow.md**.
|
For more detailed git workflow guidelines, see **@.agents/git-workflow.md**.
|
||||||
|
|
||||||
### 2. Implement the Feature
|
### 2. Implement the Feature
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ Update relevant documentation to reflect the new feature:
|
|||||||
- Add screenshots or examples if applicable
|
- Add screenshots or examples if applicable
|
||||||
- Remember that any feature addition will require a version increment in all relevant files
|
- Remember that any feature addition will require a version increment in all relevant files
|
||||||
|
|
||||||
For detailed guidelines on maintaining wiki documentation, see **@.ai-workflows/wiki-documentation.md**.
|
For detailed guidelines on maintaining wiki documentation, see **@.agents/wiki-documentation.md**.
|
||||||
|
|
||||||
### 4. Testing
|
### 4. Testing
|
||||||
|
|
||||||
@@ -100,7 +100,7 @@ git tag -a v{MAJOR}.{MINOR+1}.0-stable -m "Stable version {MAJOR}.{MINOR+1}.0"
|
|||||||
|
|
||||||
**IMPORTANT**: Don't update version numbers during initial development and testing. Only create a version branch and update version numbers when the feature is confirmed working.
|
**IMPORTANT**: Don't update version numbers during initial development and testing. Only create a version branch and update version numbers when the feature is confirmed working.
|
||||||
|
|
||||||
For detailed guidelines on time-efficient development and testing, see **@.ai-workflows/incremental-development.md**.
|
For detailed guidelines on time-efficient development and testing, see **@.agents/incremental-development.md**.
|
||||||
|
|
||||||
### 7. Push to Remote (Optional for Collaboration)
|
### 7. Push to Remote (Optional for Collaboration)
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ When developing features in a workspace with multiple repositories:
|
|||||||
- Adapt the feature to fit the current repository's needs and architecture
|
- Adapt the feature to fit the current repository's needs and architecture
|
||||||
- Document the inspiration source in code comments
|
- Document the inspiration source in code comments
|
||||||
|
|
||||||
For detailed guidelines on working in multi-repository workspaces, see **@.ai-workflows/multi-repo-workspace.md**.
|
For detailed guidelines on working in multi-repository workspaces, see **@.agents/multi-repo-workspace.md**.
|
||||||
|
|
||||||
## Feature Types and Implementation Guidelines
|
## Feature Types and Implementation Guidelines
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ This document outlines the folder structure of the plugin and explains the purpo
|
|||||||
- **includes/** - Contains core plugin functionality and classes
|
- **includes/** - Contains core plugin functionality and classes
|
||||||
- **languages/** - Contains translation files
|
- **languages/** - Contains translation files
|
||||||
- **scripts/** - Contains build and deployment scripts
|
- **scripts/** - Contains build and deployment scripts
|
||||||
- **.ai-workflows/** - Contains documentation for AI assistants
|
- **.agents/** - Contains documentation for AI assistants
|
||||||
- **.github/** - Contains GitHub-specific files like workflows
|
- **.github/** - Contains GitHub-specific files like workflows
|
||||||
- **.wordpress-org/** - Contains WordPress.org assets like banners and screenshots
|
- **.wordpress-org/** - Contains WordPress.org assets like banners and screenshots
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ When preparing for a release:
|
|||||||
- Update version numbers
|
- Update version numbers
|
||||||
- Update changelogs
|
- Update changelogs
|
||||||
- Create tag
|
- Create tag
|
||||||
- See **@.ai-workflows/release-process.md** for complete details
|
- See **@.agents/release-process.md** for complete details
|
||||||
|
|
||||||
## Contributing to External Repositories
|
## Contributing to External Repositories
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@ Monitor the PR for feedback from maintainers and be prepared to make additional
|
|||||||
- Review code thoroughly before approving
|
- Review code thoroughly before approving
|
||||||
- Test changes locally when possible
|
- Test changes locally when possible
|
||||||
- Provide constructive feedback
|
- Provide constructive feedback
|
||||||
- See **@.ai-workflows/code-review.md** for detailed code review guidelines
|
- See **@.agents/code-review.md** for detailed code review guidelines
|
||||||
|
|
||||||
### Suggested Improvements
|
### Suggested Improvements
|
||||||
|
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -6,11 +6,12 @@ This document outlines the process for preparing and publishing new releases of
|
|||||||
|
|
||||||
1. Create a version branch
|
1. Create a version branch
|
||||||
2. Update version numbers in all required files
|
2. Update version numbers in all required files
|
||||||
3. Build and test the plugin
|
3. Run code quality checks
|
||||||
4. Commit version changes
|
4. Build and test the plugin
|
||||||
5. Create version tags
|
5. Commit version changes
|
||||||
6. Push to remote repositories
|
6. Create version tags
|
||||||
7. Merge into main branch
|
7. Push to remote repositories
|
||||||
|
8. Merge into main branch
|
||||||
|
|
||||||
## Detailed Steps
|
## Detailed Steps
|
||||||
|
|
||||||
@@ -48,7 +49,30 @@ Update version numbers in all required files:
|
|||||||
5. **languages/wp-plugin-starter-template.pot**:
|
5. **languages/wp-plugin-starter-template.pot**:
|
||||||
- Update the `Project-Id-Version` header
|
- Update the `Project-Id-Version` header
|
||||||
|
|
||||||
### 3. Build and Test the Plugin
|
### 3. Run Code Quality Checks
|
||||||
|
|
||||||
|
Before building the plugin, run code quality checks to ensure the code meets standards:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run unit tests
|
||||||
|
composer test
|
||||||
|
|
||||||
|
# Run PHP CodeSniffer
|
||||||
|
composer phpcs
|
||||||
|
|
||||||
|
# Run PHP Code Beautifier and Fixer if needed
|
||||||
|
composer phpcbf
|
||||||
|
|
||||||
|
# Run PHPStan
|
||||||
|
composer phpstan
|
||||||
|
|
||||||
|
# Run PHP Mess Detector
|
||||||
|
composer phpmd
|
||||||
|
```
|
||||||
|
|
||||||
|
Fix any issues found by these tools before proceeding. See the [Code Quality Checks Workflow](./code-quality-checks.md) for more details.
|
||||||
|
|
||||||
|
### 4. Build and Test the Plugin
|
||||||
|
|
||||||
Build the plugin with the new version:
|
Build the plugin with the new version:
|
||||||
|
|
||||||
@@ -69,7 +93,7 @@ Test the plugin thoroughly:
|
|||||||
- Test with PHP 7.0+ (minimum supported version)
|
- Test with PHP 7.0+ (minimum supported version)
|
||||||
- Test all features and functionality
|
- Test all features and functionality
|
||||||
|
|
||||||
### 4. Commit Version Changes
|
### 5. Commit Version Changes
|
||||||
|
|
||||||
Commit all version changes:
|
Commit all version changes:
|
||||||
|
|
||||||
@@ -78,7 +102,7 @@ git add wp-plugin-starter-template.php readme.txt README.md CHANGELOG.md languag
|
|||||||
git commit -m "Version {MAJOR}.{MINOR}.{PATCH} - [brief description]"
|
git commit -m "Version {MAJOR}.{MINOR}.{PATCH} - [brief description]"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. Create Version Tags
|
### 6. Create Version Tags
|
||||||
|
|
||||||
Create version tags:
|
Create version tags:
|
||||||
|
|
||||||
@@ -89,7 +113,7 @@ git tag -a v{MAJOR}.{MINOR}.{PATCH}-stable -m "Stable version {MAJOR}.{MINOR}.{P
|
|||||||
|
|
||||||
The `-stable` tag is used by Git Updater to identify the stable version.
|
The `-stable` tag is used by Git Updater to identify the stable version.
|
||||||
|
|
||||||
### 6. Push to Remote Repositories
|
### 7. Push to Remote Repositories
|
||||||
|
|
||||||
Push the version branch and tags to remote repositories:
|
Push the version branch and tags to remote repositories:
|
||||||
|
|
||||||
@@ -121,7 +145,7 @@ git push gitea refs/heads/v{MAJOR}.{MINOR}.{PATCH}:refs/heads/v{MAJOR}.{MINOR}.{
|
|||||||
git push gitea --tags
|
git push gitea --tags
|
||||||
```
|
```
|
||||||
|
|
||||||
### 7. Merge into Main Branch
|
### 8. Merge into Main Branch
|
||||||
|
|
||||||
Merge the version branch into the main branch:
|
Merge the version branch into the main branch:
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ When working in a multi-repository workspace, it's critical to ensure that wiki
|
|||||||
- If referencing functionality from another repository, clearly indicate that it's external
|
- If referencing functionality from another repository, clearly indicate that it's external
|
||||||
- Use phrases like "unlike Repository X, this plugin does not include..."
|
- Use phrases like "unlike Repository X, this plugin does not include..."
|
||||||
|
|
||||||
For detailed guidelines on working in multi-repository workspaces, see **@.ai-workflows/multi-repo-workspace.md**.
|
For detailed guidelines on working in multi-repository workspaces, see **@.agents/multi-repo-workspace.md**.
|
||||||
|
|
||||||
## Best Practices
|
## Best Practices
|
||||||
|
|
||||||
@@ -52,17 +52,27 @@ jobs:
|
|||||||
zip -r ../wp-plugin-starter-template-for-ai-coding-${{ env.VERSION }}.zip wp-plugin-starter-template-for-ai-coding -x "*.DS_Store" -x "*.git*"
|
zip -r ../wp-plugin-starter-template-for-ai-coding-${{ env.VERSION }}.zip wp-plugin-starter-template-for-ai-coding -x "*.DS_Store" -x "*.git*"
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
- name: Extract changelog
|
||||||
|
id: extract_changelog
|
||||||
|
run: |
|
||||||
|
CHANGELOG=$(grep -A 20 "#### \[${{ env.VERSION }}\]" CHANGELOG.md | sed -n '/####/,/####/p' | sed '$d')
|
||||||
|
echo "CHANGELOG<<EOF" >> $GITHUB_ENV
|
||||||
|
echo "$CHANGELOG" >> $GITHUB_ENV
|
||||||
|
echo "EOF" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
id: create_release
|
id: create_release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
files: wp-plugin-starter-template-for-ai-coding-${{ env.VERSION }}.zip
|
files: wp-plugin-starter-template-for-ai-coding-${{ env.VERSION }}.zip
|
||||||
name: Version ${{ env.VERSION }}
|
name: v${{ env.VERSION }} - WordPress Plugin Starter Template
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
body: |
|
body: |
|
||||||
Release of version ${{ env.VERSION }}
|
# WordPress Plugin Starter Template v${{ env.VERSION }}
|
||||||
|
|
||||||
See [CHANGELOG.md](https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/blob/main/CHANGELOG.md) for details.
|
${{ env.CHANGELOG }}
|
||||||
|
|
||||||
|
[View full changelog](https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/blob/main/CHANGELOG.md)
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -12,8 +12,8 @@ AI-assisted development uses artificial intelligence tools to help with coding,
|
|||||||
|
|
||||||
To get the most out of AI-assisted development, make sure to include these files in your AI IDE context:
|
To get the most out of AI-assisted development, make sure to include these files in your AI IDE context:
|
||||||
|
|
||||||
1. **.ai-assistant.md**: Contains essential information about the project structure and conventions
|
1. **AGENTS.md**: Contains essential information about the project structure and conventions
|
||||||
2. **.ai-workflows/**: Directory containing detailed workflow documentation for common tasks
|
2. **.agents/**: Directory containing detailed workflow documentation for common tasks
|
||||||
|
|
||||||
### Pinning Files in AI IDEs
|
### Pinning Files in AI IDEs
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ For the best results, pin these files in your AI IDE chat context:
|
|||||||
|
|
||||||
## AI Workflow Files
|
## AI Workflow Files
|
||||||
|
|
||||||
The `.ai-workflows/` directory contains detailed guides for common development tasks:
|
The `.agents/` directory contains detailed guides for common development tasks:
|
||||||
|
|
||||||
1. **plugin-customization.md**: Guide for customizing the plugin for specific needs
|
1. **plugin-customization.md**: Guide for customizing the plugin for specific needs
|
||||||
2. **feature-development.md**: Workflow for developing new features
|
2. **feature-development.md**: Workflow for developing new features
|
||||||
@@ -50,7 +50,7 @@ The [Starter Prompt](Starter-Prompt) is a comprehensive guide for AI tools to he
|
|||||||
|
|
||||||
### Customizing the Plugin
|
### Customizing the Plugin
|
||||||
|
|
||||||
1. Open your AI IDE and pin the `.ai-assistant.md` file and `.ai-workflows/` directory
|
1. Open your AI IDE and pin the `AGENTS.md` file and `.agents/` directory
|
||||||
2. Provide the Starter Prompt to the AI
|
2. Provide the Starter Prompt to the AI
|
||||||
3. Follow the AI's guidance to customize the plugin
|
3. Follow the AI's guidance to customize the plugin
|
||||||
4. Review and test the changes
|
4. Review and test the changes
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ wp-plugin-starter-template/
|
|||||||
│ └── unit/ # Unit tests
|
│ └── unit/ # Unit tests
|
||||||
├── .github/ # GitHub-specific files
|
├── .github/ # GitHub-specific files
|
||||||
│ └── workflows/ # GitHub Actions workflows
|
│ └── workflows/ # GitHub Actions workflows
|
||||||
├── .ai-workflows/ # AI workflow documentation
|
├── .agents/ # AI workflow documentation
|
||||||
├── .wiki/ # Wiki documentation
|
├── .wiki/ # Wiki documentation
|
||||||
└── wp-plugin-starter-template.php # Main plugin file
|
└── wp-plugin-starter-template.php # Main plugin file
|
||||||
```
|
```
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ This page documents all notable changes to the WordPress Plugin Starter Template
|
|||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Improved AI IDE context recommendations in documentation
|
- Improved AI IDE context recommendations in documentation
|
||||||
- Enhanced Starter Prompt with guidance on pinning .ai-assistant.md and .ai-workflows/
|
- Enhanced Starter Prompt with guidance on pinning AGENTS.md and .agents/
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ To configure the update mechanism:
|
|||||||
|
|
||||||
The template includes:
|
The template includes:
|
||||||
|
|
||||||
1. Detailed documentation in the `.ai-assistant.md` file
|
1. Detailed documentation in the `AGENTS.md` file
|
||||||
2. Workflow guidelines in the `.ai-workflows/` directory
|
2. Workflow guidelines in the `.agents/` directory
|
||||||
3. Clear code structure and comments that help AI understand the codebase
|
3. Clear code structure and comments that help AI understand the codebase
|
||||||
4. Best practices for AI-friendly code organization
|
4. Best practices for AI-friendly code organization
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ This template is designed to work well with various AI coding assistants, includ
|
|||||||
|
|
||||||
### How do I use the AI workflow documentation?
|
### How do I use the AI workflow documentation?
|
||||||
|
|
||||||
The AI workflow documentation in the `.ai-workflows/` directory provides guidelines for AI assistants working with this template. These files help ensure consistent, high-quality code and documentation when using AI tools for development.
|
The AI workflow documentation in the `.agents/` directory provides guidelines for AI assistants working with this template. These files help ensure consistent, high-quality code and documentation when using AI tools for development.
|
||||||
|
|
||||||
## Contributing Questions
|
## Contributing Questions
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ This template is based on the experience gained from developing the "Fix 'Plugin
|
|||||||
|
|
||||||
To get started with this template, check out the [Starter Prompt](Starter-Prompt) for a comprehensive guide on customizing the template for your specific plugin needs.
|
To get started with this template, check out the [Starter Prompt](Starter-Prompt) for a comprehensive guide on customizing the template for your specific plugin needs.
|
||||||
|
|
||||||
**Important**: For the best AI assistance, add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
**Important**: For the best AI assistance, add the AGENTS.md file and .agents/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ This document provides a comprehensive prompt to help you get started with creat
|
|||||||
|
|
||||||
## Important: Optimize AI Context
|
## Important: Optimize AI Context
|
||||||
|
|
||||||
**Before starting, add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context.** In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
**Before starting, add the AGENTS.md file and .agents/ directory to your AI IDE chat context.** In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
||||||
|
|
||||||
## Initial Setup Prompt
|
## Initial Setup Prompt
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ I need help with the following tasks:
|
|||||||
2. Customizing the plugin structure for my specific needs
|
2. Customizing the plugin structure for my specific needs
|
||||||
3. Setting up the initial functionality for my plugin
|
3. Setting up the initial functionality for my plugin
|
||||||
|
|
||||||
I've added the .ai-assistant.md and .ai-workflows/ directory to the chat context to ensure you have all the necessary information about the project structure and best practices.
|
I've added the AGENTS.md and .agents/ directory to the chat context to ensure you have all the necessary information about the project structure and best practices.
|
||||||
|
|
||||||
Please guide me through this process step by step, starting with identifying all files that need to be updated with my plugin information.
|
Please guide me through this process step by step, starting with identifying all files that need to be updated with my plugin information.
|
||||||
```
|
```
|
||||||
@@ -52,7 +52,7 @@ The AI will help you identify and update the following files with your plugin in
|
|||||||
6. **languages/pot file**: Rename and update the POT file
|
6. **languages/pot file**: Rename and update the POT file
|
||||||
7. **.github/workflows/**: Update GitHub Actions workflows with your repository information
|
7. **.github/workflows/**: Update GitHub Actions workflows with your repository information
|
||||||
8. **.wiki/**: Update wiki documentation with your plugin information
|
8. **.wiki/**: Update wiki documentation with your plugin information
|
||||||
9. **.ai-assistant.md**: Update AI assistant guidance for your specific plugin
|
9. **AGENTS.md**: Update AI assistant guidance for your specific plugin
|
||||||
10. **includes/plugin.php**: Update namespace and class references
|
10. **includes/plugin.php**: Update namespace and class references
|
||||||
11. **includes/core.php**: Update namespace and customize core functionality
|
11. **includes/core.php**: Update namespace and customize core functionality
|
||||||
12. **admin/lib/admin.php**: Update namespace and customize admin functionality
|
12. **admin/lib/admin.php**: Update namespace and customize admin functionality
|
||||||
@@ -174,7 +174,7 @@ Please guide me through the process of building and testing my plugin:
|
|||||||
To ensure the AI assistant has all the necessary context about your plugin's structure and best practices:
|
To ensure the AI assistant has all the necessary context about your plugin's structure and best practices:
|
||||||
|
|
||||||
```
|
```
|
||||||
Please add the .ai-assistant.md and .ai-workflows/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
Please add the AGENTS.md and .agents/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Remember
|
## Remember
|
||||||
@@ -183,7 +183,7 @@ Please add the .ai-assistant.md and .ai-workflows/ directory to your AI IDE chat
|
|||||||
- The AI assistant can help you understand the existing code and make appropriate modifications, but you should review all changes to ensure they meet your requirements.
|
- The AI assistant can help you understand the existing code and make appropriate modifications, but you should review all changes to ensure they meet your requirements.
|
||||||
- Always test your plugin thoroughly before releasing it.
|
- Always test your plugin thoroughly before releasing it.
|
||||||
- Keep documentation updated as you develop your plugin.
|
- Keep documentation updated as you develop your plugin.
|
||||||
- Pin the .ai-assistant.md and .ai-workflows/ files in your AI IDE chat to ensure the AI has the necessary context for each interaction.
|
- Pin the AGENTS.md and .agents/ files in your AI IDE chat to ensure the AI has the necessary context for each interaction.
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ The template follows a modular structure:
|
|||||||
- `js/`: Admin JavaScript files
|
- `js/`: Admin JavaScript files
|
||||||
- `languages/`: Translation files
|
- `languages/`: Translation files
|
||||||
- `.github/workflows/`: GitHub Actions workflows
|
- `.github/workflows/`: GitHub Actions workflows
|
||||||
- `.ai-workflows/`: Documentation for AI assistants
|
- `.agents/`: Documentation for AI assistants
|
||||||
- `.wiki/`: Wiki documentation templates
|
- `.wiki/`: Wiki documentation templates
|
||||||
|
|
||||||
### Customizing for Your Plugin
|
### Customizing for Your Plugin
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ This workspace may contain multiple repository folders. Always focus ONLY on the
|
|||||||
* **Plugin Slug**: wp-plugin-starter-template
|
* **Plugin Slug**: wp-plugin-starter-template
|
||||||
* **Text Domain**: wp-plugin-starter-template
|
* **Text Domain**: wp-plugin-starter-template
|
||||||
* **Namespace**: WPALLSTARS\PluginStarterTemplate
|
* **Namespace**: WPALLSTARS\PluginStarterTemplate
|
||||||
* **Version**: 0.1.10
|
* **Version**: 0.1.13
|
||||||
* **Requires WordPress**: 5.0+
|
* **Requires WordPress**: 5.0+
|
||||||
* **Requires PHP**: 7.0+
|
* **Requires PHP**: 7.0+
|
||||||
* **License**: GPL-2.0+
|
* **License**: GPL-2.0+
|
||||||
@@ -34,7 +34,7 @@ This workspace may contain multiple repository folders. Always focus ONLY on the
|
|||||||
* **js/**: Admin JavaScript files
|
* **js/**: Admin JavaScript files
|
||||||
* **languages/**: Translation files
|
* **languages/**: Translation files
|
||||||
* **.github/workflows/**: GitHub Actions workflows
|
* **.github/workflows/**: GitHub Actions workflows
|
||||||
* **.ai-workflows/**: Documentation for AI assistants
|
* **.agents/**: Documentation for AI assistants
|
||||||
* **.wiki/**: Wiki documentation templates
|
* **.wiki/**: Wiki documentation templates
|
||||||
|
|
||||||
## Coding Standards
|
## Coding Standards
|
||||||
@@ -51,6 +51,7 @@ This project follows the [WordPress Coding Standards](https://developer.wordpres
|
|||||||
* Validate and sanitize all inputs
|
* Validate and sanitize all inputs
|
||||||
* Escape all outputs
|
* Escape all outputs
|
||||||
* Use asterisks (*) for bullet points in all Markdown files, not hyphens (-)
|
* Use asterisks (*) for bullet points in all Markdown files, not hyphens (-)
|
||||||
|
* Add periods to the end of all inline comments
|
||||||
|
|
||||||
### Code Quality Tools
|
### Code Quality Tools
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@ Always run PHPCS and PHPCBF locally before committing code to ensure it meets th
|
|||||||
|
|
||||||
## Common Tasks
|
## Common Tasks
|
||||||
|
|
||||||
For detailed instructions on common tasks like creating releases, adding features, fixing bugs, and testing previous versions, see **@.ai-workflows/release-process.md**.
|
For detailed instructions on common tasks like creating releases, adding features, fixing bugs, and testing previous versions, see **@.agents/release-process.md**.
|
||||||
|
|
||||||
## Avoiding Cross-Repository Confusion
|
## Avoiding Cross-Repository Confusion
|
||||||
|
|
||||||
+39
-1
@@ -1,5 +1,43 @@
|
|||||||
All notable changes to this project should be documented both here and in the main Readme files.
|
All notable changes to this project should be documented both here and in the main Readme files.
|
||||||
|
|
||||||
|
#### [0.1.15] - 2025-11-24
|
||||||
|
|
||||||
|
#### Release
|
||||||
|
|
||||||
|
- Maintenance release
|
||||||
|
|
||||||
|
#### [0.1.14] - 2025-11-24
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- Renamed .ai-assistant.md to AGENTS.md
|
||||||
|
- Renamed .ai-workflows directory to .agents
|
||||||
|
- Updated all references in documentation and codebase
|
||||||
|
|
||||||
|
#### [0.1.13] - 2023-04-23
|
||||||
|
|
||||||
|
#### Improved
|
||||||
|
|
||||||
|
- Improved code quality with proper type declarations
|
||||||
|
- Fixed inconsistent variable naming (camelCase to snake_case)
|
||||||
|
- Improved path handling in admin class
|
||||||
|
- Added textdomain loading functionality
|
||||||
|
- Removed unused phpcs:ignore comment
|
||||||
|
- Implemented proper return type declarations
|
||||||
|
|
||||||
|
#### [0.1.12] - 2023-04-22
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
|
||||||
|
- Fixed WordPress mocking in unit tests
|
||||||
|
- Added proper mocking for WordPress functions in tests
|
||||||
|
- Improved code quality tool configurations
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- Detailed code quality checks workflow documentation
|
||||||
|
- Updated documentation for better workflow efficiency
|
||||||
|
|
||||||
#### [0.1.11] - 2023-04-21
|
#### [0.1.11] - 2023-04-21
|
||||||
|
|
||||||
#### Improved
|
#### Improved
|
||||||
@@ -65,7 +103,7 @@ All notable changes to this project should be documented both here and in the ma
|
|||||||
#### Added
|
#### Added
|
||||||
|
|
||||||
- Improved AI IDE context recommendations in documentation
|
- Improved AI IDE context recommendations in documentation
|
||||||
- Enhanced Starter Prompt with guidance on pinning .ai-assistant.md and .ai-workflows/
|
- Enhanced Starter Prompt with guidance on pinning AGENTS.md and .agents/
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ This template is based on the experience gained from developing the "Fix 'Plugin
|
|||||||
|
|
||||||
1. Clone or download this repository
|
1. Clone or download this repository
|
||||||
2. **Important**: Begin by reading the [Starter Prompt](.wiki/Starter-Prompt.md) file for detailed instructions
|
2. **Important**: Begin by reading the [Starter Prompt](.wiki/Starter-Prompt.md) file for detailed instructions
|
||||||
3. Add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context (pin them if possible)
|
3. Add the AGENTS.md file and .agents/ directory to your AI IDE chat context (pin them if possible)
|
||||||
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template for your plugin
|
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template for your plugin
|
||||||
5. Rename files and update namespaces to match your plugin
|
5. Rename files and update namespaces to match your plugin
|
||||||
6. Customize the functionality for your specific needs
|
6. Customize the functionality for your specific needs
|
||||||
@@ -37,17 +37,17 @@ This template is based on the experience gained from developing the "Fix 'Plugin
|
|||||||
|
|
||||||
This template includes comprehensive documentation for AI-assisted development:
|
This template includes comprehensive documentation for AI-assisted development:
|
||||||
|
|
||||||
* **.ai-assistant.md**: Guide for AI assistants to understand the project structure
|
* **AGENTS.md**: Guide for AI assistants to understand the project structure
|
||||||
* **.ai-workflows/**: Detailed workflow documentation for common development tasks
|
* **.agents/**: Detailed workflow documentation for common development tasks
|
||||||
* **Starter Prompt**: Comprehensive prompt for AI tools to help customize the template (available in the [wiki](.wiki/Starter-Prompt.md))
|
* **Starter Prompt**: Comprehensive prompt for AI tools to help customize the template (available in the [wiki](.wiki/Starter-Prompt.md))
|
||||||
|
|
||||||
**Important**: For the best AI assistance, add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
**Important**: For the best AI assistance, add the AGENTS.md file and .agents/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Clone or download this repository
|
1. Clone or download this repository
|
||||||
2. Read the [Starter Prompt](.wiki/Starter-Prompt.md) file for detailed instructions
|
2. Read the [Starter Prompt](.wiki/Starter-Prompt.md) file for detailed instructions
|
||||||
3. Add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context
|
3. Add the AGENTS.md file and .agents/ directory to your AI IDE chat context
|
||||||
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template
|
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template
|
||||||
5. Rename files and update namespaces to match your plugin
|
5. Rename files and update namespaces to match your plugin
|
||||||
6. Customize the functionality for your specific needs
|
6. Customize the functionality for your specific needs
|
||||||
@@ -67,7 +67,7 @@ To get started with this template, follow these steps:
|
|||||||
|
|
||||||
2. Open the [Starter Prompt](.wiki/Starter-Prompt.md) file and follow the instructions to customize the template for your plugin.
|
2. Open the [Starter Prompt](.wiki/Starter-Prompt.md) file and follow the instructions to customize the template for your plugin.
|
||||||
|
|
||||||
3. Add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context.
|
3. Add the AGENTS.md file and .agents/ directory to your AI IDE chat context.
|
||||||
|
|
||||||
4. Use an AI assistant like GitHub Copilot, Claude, or ChatGPT to help you customize the template by providing the prompt from the Starter Prompt file.
|
4. Use an AI assistant like GitHub Copilot, Claude, or ChatGPT to help you customize the template by providing the prompt from the Starter Prompt file.
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ This template includes functionality that allows users to choose where they want
|
|||||||
|
|
||||||
### How do I customize this template for my plugin?
|
### How do I customize this template for my plugin?
|
||||||
|
|
||||||
See the [Starter Prompt](.wiki/Starter-Prompt.md) file for detailed instructions on customizing this template for your specific plugin needs. Make sure to add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context for the best results.
|
See the [Starter Prompt](.wiki/Starter-Prompt.md) file for detailed instructions on customizing this template for your specific plugin needs. Make sure to add the AGENTS.md file and .agents/ directory to your AI IDE chat context for the best results.
|
||||||
|
|
||||||
### What files do I need to update with my plugin information?
|
### What files do I need to update with my plugin information?
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ The main files you need to update include:
|
|||||||
7. languages/pot file
|
7. languages/pot file
|
||||||
8. .github/workflows/
|
8. .github/workflows/
|
||||||
9. .wiki/
|
9. .wiki/
|
||||||
10. .ai-assistant.md
|
10. AGENTS.md
|
||||||
11. includes/plugin.php
|
11. includes/plugin.php
|
||||||
12. includes/core.php
|
12. includes/core.php
|
||||||
13. admin/lib/admin.php
|
13. admin/lib/admin.php
|
||||||
@@ -478,6 +478,33 @@ For more information on Git Updater integration, see the [Git Updater Required H
|
|||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
### 0.1.13
|
||||||
|
|
||||||
|
* Improved: Code quality with proper type declarations
|
||||||
|
* Fixed: Inconsistent variable naming (camelCase to snake_case)
|
||||||
|
* Improved: Path handling in admin class
|
||||||
|
* Added: Textdomain loading functionality
|
||||||
|
* Removed: Unused phpcs:ignore comment
|
||||||
|
* Implemented: Proper return type declarations
|
||||||
|
|
||||||
|
### 0.1.12
|
||||||
|
|
||||||
|
* Fixed: WordPress mocking in unit tests
|
||||||
|
* Added: Proper mocking for WordPress functions in tests
|
||||||
|
* Improved: Code quality tool configurations
|
||||||
|
* Added: Detailed code quality checks workflow documentation
|
||||||
|
* Updated: Documentation for better workflow efficiency
|
||||||
|
|
||||||
|
### 0.1.11
|
||||||
|
|
||||||
|
* Improved: Code quality with comprehensive fixes
|
||||||
|
* Fixed: Indentation issues in PHP files
|
||||||
|
* Updated: CSS formatting with modern notation
|
||||||
|
* Fixed: JavaScript issues with proper global variables
|
||||||
|
* Improved: Security by using filter_input() instead of direct superglobal access
|
||||||
|
* Standardized: Naming conventions across the codebase
|
||||||
|
* Fixed: Documentation and comments for better clarity
|
||||||
|
|
||||||
### 0.1.10
|
### 0.1.10
|
||||||
|
|
||||||
* Fixed: Formatting issues in markdown files for better code quality
|
* Fixed: Formatting issues in markdown files for better code quality
|
||||||
@@ -510,7 +537,7 @@ For more information on Git Updater integration, see the [Git Updater Required H
|
|||||||
### 0.1.3
|
### 0.1.3
|
||||||
|
|
||||||
* Added: Improved AI IDE context recommendations in documentation
|
* Added: Improved AI IDE context recommendations in documentation
|
||||||
* Enhanced: Starter Prompt with guidance on pinning .ai-assistant.md and .ai-workflows/
|
* Enhanced: Starter Prompt with guidance on pinning AGENTS.md and .agents/
|
||||||
* Moved: Starter Prompt to the wiki for better organization
|
* Moved: Starter Prompt to the wiki for better organization
|
||||||
* Updated: README.md and readme.txt with AI IDE context recommendations
|
* Updated: README.md and readme.txt with AI IDE context recommendations
|
||||||
* Improved: Documentation for AI-assisted development
|
* Improved: Documentation for AI-assisted development
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "wpallstars/wp-plugin-starter-template-for-ai-coding",
|
"name": "wpallstars/wp-plugin-starter-template-for-ai-coding",
|
||||||
"description": "A starter template for WordPress plugins with AI development workflows.",
|
"description": "A starter template for WordPress plugins with AI development workflows.",
|
||||||
"type": "wordpress-plugin",
|
"type": "wordpress-plugin",
|
||||||
"version": "0.1.10",
|
"version": "0.1.15",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class Admin {
|
|||||||
*
|
*
|
||||||
* @var Core
|
* @var Core
|
||||||
*/
|
*/
|
||||||
private $core;
|
private Core $core;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@@ -46,39 +46,60 @@ class Admin {
|
|||||||
|
|
||||||
|
|
||||||
*
|
*
|
||||||
* @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
|
||||||
*/
|
*/
|
||||||
public function enqueue_admin_assets(): void {
|
public function enqueue_admin_assets(): void {
|
||||||
|
|
||||||
// @phpcs:disable WordPress.Security.NonceVerification.Recommended
|
// @phpcs:disable WordPress.Security.NonceVerification.Recommended
|
||||||
// @phpcs:disable WordPress.Security.NonceVerification.Missing
|
// @phpcs:disable WordPress.Security.NonceVerification.Missing
|
||||||
|
// For production, use filter_input.
|
||||||
|
$page = '';
|
||||||
|
if ( defined( 'PHPUNIT_RUNNING' ) && PHPUNIT_RUNNING ) {
|
||||||
|
// For testing, use $_GET directly.
|
||||||
|
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- We're sanitizing with wp_unslash and validating later
|
||||||
|
$page = isset( $_GET['page'] ) ? \wp_unslash( $_GET['page'] ) : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use filter_input for production environment.
|
||||||
|
if ( empty( $page ) ) {
|
||||||
$page = filter_input( INPUT_GET, 'page', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
$page = filter_input( INPUT_GET, 'page', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! $page || 'wp_plugin_starter_template_settings' !== $page ) {
|
if ( ! $page || 'wp_plugin_starter_template_settings' !== $page ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// @phpcs:enable
|
// @phpcs:enable
|
||||||
|
|
||||||
// Get the plugin version.
|
// Get the plugin version.
|
||||||
$pluginVersion = $this->core->get_plugin_version();
|
$plugin_version = $this->core->get_plugin_version();
|
||||||
|
|
||||||
// Enqueue styles.
|
// Enqueue styles.
|
||||||
\wp_enqueue_style(
|
\wp_enqueue_style(
|
||||||
'wpst-admin-styles',
|
'wpst-admin-styles',
|
||||||
\plugin_dir_url( __FILE__ ) . '../../admin/css/admin-styles.css',
|
plugin_dir_url( dirname( __DIR__ ) ) . 'admin/css/admin-styles.css',
|
||||||
array(), // Dependencies.
|
array(), // Dependencies.
|
||||||
$pluginVersion // Version.
|
$plugin_version // Version.
|
||||||
);
|
);
|
||||||
|
|
||||||
// Enqueue admin scripts.
|
// Enqueue admin scripts.
|
||||||
\wp_enqueue_script(
|
\wp_enqueue_script(
|
||||||
'wpst-admin-script',
|
'wpst-admin-script',
|
||||||
\plugin_dir_url( __FILE__ ) . '../../admin/js/admin-scripts.js',
|
plugin_dir_url( dirname( __DIR__ ) ) . 'admin/js/admin-scripts.js',
|
||||||
array( 'jquery' ),
|
array( 'jquery' ),
|
||||||
$pluginVersion, // Version.
|
$plugin_version, // Version.
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
// TODO: Implement localization when mocking is fixed (Issue #1).
|
// Prepare data for localization.
|
||||||
// This will include ajax_url and nonce for security.
|
$data = array(
|
||||||
|
'ajax_url' => \admin_url( 'admin-ajax.php' ),
|
||||||
|
'nonce' => \wp_create_nonce( 'wpst_admin_nonce' ),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Localize the script with the data.
|
||||||
|
\wp_localize_script(
|
||||||
|
'wpst-admin-script',
|
||||||
|
'wpst_admin_data',
|
||||||
|
$data
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,14 +17,14 @@ class Core {
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $version;
|
private string $version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param string $version Plugin version.
|
* @param string $version Plugin version.
|
||||||
*/
|
*/
|
||||||
public function __construct( $version = '' ) {
|
public function __construct( string $version = '' ) {
|
||||||
// Initialize hooks.
|
// Initialize hooks.
|
||||||
$this->version = $version;
|
$this->version = $version;
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,7 @@ class Core {
|
|||||||
* @param string $content The content to filter.
|
* @param string $content The content to filter.
|
||||||
* @return string The filtered content.
|
* @return string The filtered content.
|
||||||
*/
|
*/
|
||||||
public function filter_content( $content ) {
|
public function filter_content( string $content ): string {
|
||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ class Core {
|
|||||||
*
|
*
|
||||||
* @return string The plugin version.
|
* @return string The plugin version.
|
||||||
*/
|
*/
|
||||||
public function get_plugin_version() {
|
public function get_plugin_version(): string {
|
||||||
return $this->version;
|
return $this->version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19,14 +19,14 @@ class Plugin {
|
|||||||
*
|
*
|
||||||
* @var Core
|
* @var Core
|
||||||
*/
|
*/
|
||||||
private $core;
|
private Core $core;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Admin instance
|
* Admin instance
|
||||||
*
|
*
|
||||||
* @var Admin
|
* @var Admin
|
||||||
*/
|
*/
|
||||||
private $admin;
|
private Admin $admin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plugin file path
|
* Plugin file path
|
||||||
@@ -40,7 +40,7 @@ class Plugin {
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $version;
|
private string $version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
@@ -58,7 +58,23 @@ class Plugin {
|
|||||||
/**
|
/**
|
||||||
* Initialize the plugin
|
* Initialize the plugin
|
||||||
*/
|
*/
|
||||||
public function init() {
|
public function init(): void {
|
||||||
// Initialization logic goes here.
|
// Register hooks and filters.
|
||||||
|
add_action('plugins_loaded', array($this, 'load_textdomain'));
|
||||||
|
|
||||||
|
// Initialize any other plugin functionality.
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load plugin textdomain.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function load_textdomain(): void {
|
||||||
|
load_plugin_textdomain(
|
||||||
|
'wp-plugin-starter-template',
|
||||||
|
false,
|
||||||
|
dirname(plugin_basename($this->pluginFile)) . '/languages/'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wp-plugin-starter-template-for-ai-coding",
|
"name": "wp-plugin-starter-template-for-ai-coding",
|
||||||
"version": "0.1.10",
|
"version": "0.1.15",
|
||||||
"description": "A comprehensive starter template for WordPress plugins with best practices for AI-assisted development.",
|
"description": "A comprehensive starter template for WordPress plugins with best practices for AI-assisted development.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -32,12 +32,13 @@
|
|||||||
<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
|
<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
|
||||||
<exclude name="WordPress.DB.DirectDatabaseQuery.NoCaching" />
|
<exclude name="WordPress.DB.DirectDatabaseQuery.NoCaching" />
|
||||||
|
|
||||||
<exclude name="Universal.ControlStructures.DisallowAlternativeSyntax.FoundIfWithInlineHTML" />
|
<!-- Universal sniffs are commented out until the dependencies are properly installed -->
|
||||||
<exclude name="Universal.ControlStructures.DisallowAlternativeSyntax.FoundForeachWithInlineHTML" />
|
<!-- <exclude name="Universal.ControlStructures.DisallowAlternativeSyntax.FoundIfWithInlineHTML" /> -->
|
||||||
<exclude name="Universal.ControlStructures.DisallowAlternativeSyntax.FoundIf" />
|
<!-- <exclude name="Universal.ControlStructures.DisallowAlternativeSyntax.FoundForeachWithInlineHTML" /> -->
|
||||||
<exclude name="Universal.ControlStructures.IfElseDeclaration.NoNewLine" />
|
<!-- <exclude name="Universal.ControlStructures.DisallowAlternativeSyntax.FoundIf" /> -->
|
||||||
<exclude name="Universal.Classes.RequireFinalClass.NonFinalClassFound" />
|
<!-- <exclude name="Universal.ControlStructures.IfElseDeclaration.NoNewLine" /> -->
|
||||||
<exclude name="Universal.Namespaces.EnforceCurlyBraceSyntax.Forbidden" />
|
<!-- <exclude name="Universal.Classes.RequireFinalClass.NonFinalClassFound" /> -->
|
||||||
|
<!-- <exclude name="Universal.Namespaces.EnforceCurlyBraceSyntax.Forbidden" /> -->
|
||||||
|
|
||||||
<exclude name="Generic.Commenting.Todo" />
|
<exclude name="Generic.Commenting.Todo" />
|
||||||
<exclude name="Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition" />
|
<exclude name="Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition" />
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ parameters:
|
|||||||
ignoreErrors:
|
ignoreErrors:
|
||||||
- '#Function apply_filters invoked with [0-9]+ parameters, 2 required.#'
|
- '#Function apply_filters invoked with [0-9]+ parameters, 2 required.#'
|
||||||
- '#Function [a-zA-Z0-9_]+ not found.#'
|
- '#Function [a-zA-Z0-9_]+ not found.#'
|
||||||
- '#Call to static method [a-zA-Z0-9_:()]+ on an unknown class [a-zA-Z0-9_]+.#'
|
- '#Call to static method [a-zA-Z0-9_:\\(\\)]+ on an unknown class [a-zA-Z0-9_]+.#'
|
||||||
- '#Function do_action invoked with [0-9]+ parameters, 1 required.#'
|
- '#Function do_action invoked with [0-9]+ parameters, 1 required.#'
|
||||||
- '#Function add_action invoked with [0-9]+ parameters, 2 required.#'
|
- '#Function add_action invoked with [0-9]+ parameters, 2 required.#'
|
||||||
- '#Function add_filter invoked with [0-9]+ parameters, 2 required.#'
|
- '#Function add_filter invoked with [0-9]+ parameters, 2 required.#'
|
||||||
|
|||||||
+45
-10
@@ -5,7 +5,7 @@ Tags: starter, template, boilerplate, plugin development, ai coding
|
|||||||
Requires at least: 5.0
|
Requires at least: 5.0
|
||||||
Tested up to: 6.5
|
Tested up to: 6.5
|
||||||
Requires PHP: 7.4
|
Requires PHP: 7.4
|
||||||
Stable tag: 0.1.11
|
Stable tag: 0.1.15
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ This template is based on the experience gained from developing the "Fix 'Plugin
|
|||||||
|
|
||||||
1. Clone or download this repository
|
1. Clone or download this repository
|
||||||
2. **Important**: Begin by reading the Starter Prompt file in the wiki for detailed instructions
|
2. **Important**: Begin by reading the Starter Prompt file in the wiki for detailed instructions
|
||||||
3. Add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context (pin them if possible)
|
3. Add the AGENTS.md file and .agents/ directory to your AI IDE chat context (pin them if possible)
|
||||||
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template for your plugin
|
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template for your plugin
|
||||||
5. Rename files and update namespaces to match your plugin
|
5. Rename files and update namespaces to match your plugin
|
||||||
6. Customize the functionality for your specific needs
|
6. Customize the functionality for your specific needs
|
||||||
@@ -46,11 +46,11 @@ For detailed instructions, see the [Starter Prompt](https://github.com/wpallstar
|
|||||||
|
|
||||||
This template includes comprehensive documentation for AI-assisted development:
|
This template includes comprehensive documentation for AI-assisted development:
|
||||||
|
|
||||||
* **.ai-assistant.md**: Guide for AI assistants to understand the project structure
|
* **AGENTS.md**: Guide for AI assistants to understand the project structure
|
||||||
* **.ai-workflows/**: Detailed workflow documentation for common development tasks
|
* **.agents/**: Detailed workflow documentation for common development tasks
|
||||||
* **Starter Prompt**: Comprehensive prompt for AI tools to help customize the template (available in the wiki)
|
* **Starter Prompt**: Comprehensive prompt for AI tools to help customize the template (available in the wiki)
|
||||||
|
|
||||||
**Important**: For the best AI assistance, add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
**Important**: For the best AI assistance, add the AGENTS.md file and .agents/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
||||||
|
|
||||||
= Development Environment =
|
= Development Environment =
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ For more information on coding standards and how to pass code quality checks, se
|
|||||||
|
|
||||||
1. Clone or download this repository
|
1. Clone or download this repository
|
||||||
2. Read the Starter Prompt file in the wiki for detailed instructions
|
2. Read the Starter Prompt file in the wiki for detailed instructions
|
||||||
3. Add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context
|
3. Add the AGENTS.md file and .agents/ directory to your AI IDE chat context
|
||||||
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template
|
4. Use the prompt in the Starter Prompt file to guide the AI in customizing the template
|
||||||
5. Rename files and update namespaces to match your plugin
|
5. Rename files and update namespaces to match your plugin
|
||||||
6. Customize the functionality for your specific needs
|
6. Customize the functionality for your specific needs
|
||||||
@@ -173,7 +173,7 @@ For detailed instructions, see the [Starter Prompt](https://github.com/wpallstar
|
|||||||
|
|
||||||
= How do I customize this template for my plugin? =
|
= How do I customize this template for my plugin? =
|
||||||
|
|
||||||
See the [Starter Prompt](https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/wiki/Starter-Prompt) file in the wiki for detailed instructions on customizing this template for your specific plugin needs. Make sure to add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context for the best results.
|
See the [Starter Prompt](https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/wiki/Starter-Prompt) file in the wiki for detailed instructions on customizing this template for your specific plugin needs. Make sure to add the AGENTS.md file and .agents/ directory to your AI IDE chat context for the best results.
|
||||||
|
|
||||||
= What files do I need to update with my plugin information? =
|
= What files do I need to update with my plugin information? =
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@ The main files you need to update include:
|
|||||||
7. languages/pot file
|
7. languages/pot file
|
||||||
8. .github/workflows/
|
8. .github/workflows/
|
||||||
9. .wiki/
|
9. .wiki/
|
||||||
10. .ai-assistant.md
|
10. AGENTS.md
|
||||||
11. includes/plugin.php
|
11. includes/plugin.php
|
||||||
12. includes/core.php
|
12. includes/core.php
|
||||||
13. admin/lib/admin.php
|
13. admin/lib/admin.php
|
||||||
@@ -228,6 +228,29 @@ npm run multisite
|
|||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 0.1.15 =
|
||||||
|
* Release: Maintenance release
|
||||||
|
|
||||||
|
= 0.1.14 =
|
||||||
|
* Changed: Renamed .ai-assistant.md to AGENTS.md for better discoverability
|
||||||
|
* Changed: Renamed .ai-workflows directory to .agents
|
||||||
|
* Updated: All references to these files in documentation and codebase
|
||||||
|
|
||||||
|
= 0.1.13 =
|
||||||
|
* Improved: Code quality with proper type declarations
|
||||||
|
* Fixed: Inconsistent variable naming (camelCase to snake_case)
|
||||||
|
* Improved: Path handling in admin class
|
||||||
|
* Added: Textdomain loading functionality
|
||||||
|
* Removed: Unused phpcs:ignore comment
|
||||||
|
* Implemented: Proper return type declarations
|
||||||
|
|
||||||
|
= 0.1.12 =
|
||||||
|
* Fixed: WordPress mocking in unit tests
|
||||||
|
* Added: Proper mocking for WordPress functions in tests
|
||||||
|
* Improved: Code quality tool configurations
|
||||||
|
* Added: Detailed code quality checks workflow documentation
|
||||||
|
* Updated: Documentation for better workflow efficiency
|
||||||
|
|
||||||
= 0.1.11 =
|
= 0.1.11 =
|
||||||
* Improved: Code quality with comprehensive fixes
|
* Improved: Code quality with comprehensive fixes
|
||||||
* Fixed: Indentation issues in PHP files
|
* Fixed: Indentation issues in PHP files
|
||||||
@@ -263,7 +286,7 @@ npm run multisite
|
|||||||
|
|
||||||
= 0.1.3 =
|
= 0.1.3 =
|
||||||
* Added: Improved AI IDE context recommendations in documentation
|
* Added: Improved AI IDE context recommendations in documentation
|
||||||
* Enhanced: Starter Prompt with guidance on pinning .ai-assistant.md and .ai-workflows/
|
* Enhanced: Starter Prompt with guidance on pinning AGENTS.md and .agents/
|
||||||
* Moved: Starter Prompt to the wiki for better organization
|
* Moved: Starter Prompt to the wiki for better organization
|
||||||
* Updated: README.md and readme.txt with AI IDE context recommendations
|
* Updated: README.md and readme.txt with AI IDE context recommendations
|
||||||
* Improved: Documentation for AI-assisted development
|
* Improved: Documentation for AI-assisted development
|
||||||
@@ -288,6 +311,18 @@ npm run multisite
|
|||||||
|
|
||||||
== Upgrade Notice ==
|
== Upgrade Notice ==
|
||||||
|
|
||||||
|
= 0.1.15 =
|
||||||
|
Maintenance release.
|
||||||
|
|
||||||
|
= 0.1.14 =
|
||||||
|
Renamed AI assistant documentation files to AGENTS.md and .agents/ directory.
|
||||||
|
|
||||||
|
= 0.1.13 =
|
||||||
|
Improved code quality with proper type declarations, consistent variable naming, and better path handling.
|
||||||
|
|
||||||
|
= 0.1.12 =
|
||||||
|
Fixed WordPress mocking in unit tests, improved code quality tool configurations, and added detailed workflow documentation.
|
||||||
|
|
||||||
= 0.1.11 =
|
= 0.1.11 =
|
||||||
Improved code quality with comprehensive fixes, better security, and standardized naming conventions across the codebase.
|
Improved code quality with comprehensive fixes, better security, and standardized naming conventions across the codebase.
|
||||||
|
|
||||||
@@ -310,7 +345,7 @@ Fixed GitHub Actions workflows permissions for releases and wiki sync.
|
|||||||
Fixed release workflow and added testing setup with wp-env and Cypress, multisite compatibility, and npm scripts for development and testing.
|
Fixed release workflow and added testing setup with wp-env and Cypress, multisite compatibility, and npm scripts for development and testing.
|
||||||
|
|
||||||
= 0.1.3 =
|
= 0.1.3 =
|
||||||
Added improved AI IDE context recommendations and moved Starter Prompt to the wiki with guidance on pinning .ai-assistant.md and .ai-workflows/ files.
|
Added improved AI IDE context recommendations and moved Starter Prompt to the wiki with guidance on pinning AGENTS.md and .agents/ files.
|
||||||
|
|
||||||
= 0.1.1 =
|
= 0.1.1 =
|
||||||
Updated LICENSE file with correct GPL-2.0 text.
|
Updated LICENSE file with correct GPL-2.0 text.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
sonar.projectKey=wpallstars_wp-plugin-starter-template-for-ai-coding
|
sonar.projectKey=wpallstars_wp-plugin-starter-template-for-ai-coding
|
||||||
sonar.organization=wpallstars
|
sonar.organization=wpallstars
|
||||||
sonar.projectName=wp-plugin-starter-template-for-ai-coding
|
sonar.projectName=wp-plugin-starter-template-for-ai-coding
|
||||||
sonar.projectVersion=0.1.10
|
sonar.projectVersion=0.1.13
|
||||||
|
|
||||||
# Path to source directories
|
# Path to source directories
|
||||||
sonar.sources=.
|
sonar.sources=.
|
||||||
@@ -25,3 +25,6 @@ sonar.php.tests.reportPath=test-report.xml
|
|||||||
|
|
||||||
# Additional parameters
|
# Additional parameters
|
||||||
sonar.verbose=true
|
sonar.verbose=true
|
||||||
|
|
||||||
|
# Disable automatic analysis
|
||||||
|
sonar.projectKey.analysis.mode=manual
|
||||||
+75
-7
@@ -67,12 +67,80 @@ class AdminTest extends \WP_Mock\Tools\TestCase {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Test the enqueue_admin_assets method.
|
* Test the enqueue_admin_assets method.
|
||||||
*
|
|
||||||
* This test is currently disabled due to issues with mocking.
|
|
||||||
* TODO: Fix this test in a future update.
|
|
||||||
*/
|
*/
|
||||||
// public function test_enqueue_admin_assets(): void
|
public function test_enqueue_admin_assets(): void
|
||||||
// {
|
{
|
||||||
// // Test implementation will be added in a future update
|
// Define the PHPUNIT_RUNNING constant
|
||||||
// }
|
if ( ! defined( 'PHPUNIT_RUNNING' ) ) {
|
||||||
|
define( 'PHPUNIT_RUNNING', true );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up the superglobal for the test
|
||||||
|
$_GET['page'] = 'wp_plugin_starter_template_settings';
|
||||||
|
|
||||||
|
// Mock wp_unslash function
|
||||||
|
WP_Mock::userFunction('wp_unslash', [
|
||||||
|
'args' => ['wp_plugin_starter_template_settings'],
|
||||||
|
'return' => 'wp_plugin_starter_template_settings',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Mock WordPress functions used in the method
|
||||||
|
WP_Mock::userFunction('plugin_dir_url', [
|
||||||
|
'return' => 'http://example.com/wp-content/plugins/wp-plugin-starter-template/includes/Admin/',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Mock wp_enqueue_style
|
||||||
|
WP_Mock::userFunction('wp_enqueue_style', [
|
||||||
|
'times' => 1,
|
||||||
|
'args' => [
|
||||||
|
'wpst-admin-styles',
|
||||||
|
'http://example.com/wp-content/plugins/wp-plugin-starter-template/includes/Admin/../../admin/css/admin-styles.css',
|
||||||
|
[],
|
||||||
|
'1.0.0',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Mock wp_enqueue_script
|
||||||
|
WP_Mock::userFunction('wp_enqueue_script', [
|
||||||
|
'times' => 1,
|
||||||
|
'args' => [
|
||||||
|
'wpst-admin-script',
|
||||||
|
'http://example.com/wp-content/plugins/wp-plugin-starter-template/includes/Admin/../../admin/js/admin-scripts.js',
|
||||||
|
['jquery'],
|
||||||
|
'1.0.0',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Mock admin_url
|
||||||
|
WP_Mock::userFunction('admin_url', [
|
||||||
|
'args' => ['admin-ajax.php'],
|
||||||
|
'return' => 'http://example.com/wp-admin/admin-ajax.php',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Mock wp_create_nonce
|
||||||
|
WP_Mock::userFunction('wp_create_nonce', [
|
||||||
|
'args' => ['wpst_admin_nonce'],
|
||||||
|
'return' => 'test_nonce_123',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Mock wp_localize_script
|
||||||
|
WP_Mock::userFunction('wp_localize_script', [
|
||||||
|
'times' => 1,
|
||||||
|
'args' => [
|
||||||
|
'wpst-admin-script',
|
||||||
|
'wpst_admin_data',
|
||||||
|
[
|
||||||
|
'ajax_url' => 'http://example.com/wp-admin/admin-ajax.php',
|
||||||
|
'nonce' => 'test_nonce_123',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Call the method
|
||||||
|
$this->admin->enqueue_admin_assets();
|
||||||
|
|
||||||
|
// If we get here without exceptions, the test passes
|
||||||
|
$this->assertTrue(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -47,7 +47,7 @@ All notable changes to this project should be documented both here and in the ma
|
|||||||
#### Added
|
#### Added
|
||||||
|
|
||||||
- Improved AI IDE context recommendations in documentation
|
- Improved AI IDE context recommendations in documentation
|
||||||
- Enhanced Starter Prompt with guidance on pinning .ai-assistant.md and .ai-workflows/
|
- Enhanced Starter Prompt with guidance on pinning AGENTS.md and .agents/
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ To configure the update mechanism:
|
|||||||
|
|
||||||
The template includes:
|
The template includes:
|
||||||
|
|
||||||
1. Detailed documentation in the `.ai-assistant.md` file
|
1. Detailed documentation in the `AGENTS.md` file
|
||||||
2. Workflow guidelines in the `.ai-workflows/` directory
|
2. Workflow guidelines in the `.agents/` directory
|
||||||
3. Clear code structure and comments that help AI understand the codebase
|
3. Clear code structure and comments that help AI understand the codebase
|
||||||
4. Best practices for AI-friendly code organization
|
4. Best practices for AI-friendly code organization
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ This template is designed to work well with various AI coding assistants, includ
|
|||||||
|
|
||||||
### How do I use the AI workflow documentation?
|
### How do I use the AI workflow documentation?
|
||||||
|
|
||||||
The AI workflow documentation in the `.ai-workflows/` directory provides guidelines for AI assistants working with this template. These files help ensure consistent, high-quality code and documentation when using AI tools for development.
|
The AI workflow documentation in the `.agents/` directory provides guidelines for AI assistants working with this template. These files help ensure consistent, high-quality code and documentation when using AI tools for development.
|
||||||
|
|
||||||
## Contributing Questions
|
## Contributing Questions
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ This template is based on the experience gained from developing the "Fix 'Plugin
|
|||||||
|
|
||||||
To get started with this template, check out the [Starter Prompt](Starter-Prompt) for a comprehensive guide on customizing the template for your specific plugin needs.
|
To get started with this template, check out the [Starter Prompt](Starter-Prompt) for a comprehensive guide on customizing the template for your specific plugin needs.
|
||||||
|
|
||||||
**Important**: For the best AI assistance, add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
**Important**: For the best AI assistance, add the AGENTS.md file and .agents/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message.
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ This document provides a comprehensive prompt to help you get started with creat
|
|||||||
|
|
||||||
## Important: Optimize AI Context
|
## Important: Optimize AI Context
|
||||||
|
|
||||||
**Before starting, add the .ai-assistant.md file and .ai-workflows/ directory to your AI IDE chat context.** In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
**Before starting, add the AGENTS.md file and .agents/ directory to your AI IDE chat context.** In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
||||||
|
|
||||||
## Initial Setup Prompt
|
## Initial Setup Prompt
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ I need help with the following tasks:
|
|||||||
2. Customizing the plugin structure for my specific needs
|
2. Customizing the plugin structure for my specific needs
|
||||||
3. Setting up the initial functionality for my plugin
|
3. Setting up the initial functionality for my plugin
|
||||||
|
|
||||||
I've added the .ai-assistant.md and .ai-workflows/ directory to the chat context to ensure you have all the necessary information about the project structure and best practices.
|
I've added the AGENTS.md and .agents/ directory to the chat context to ensure you have all the necessary information about the project structure and best practices.
|
||||||
|
|
||||||
Please guide me through this process step by step, starting with identifying all files that need to be updated with my plugin information.
|
Please guide me through this process step by step, starting with identifying all files that need to be updated with my plugin information.
|
||||||
```
|
```
|
||||||
@@ -52,7 +52,7 @@ The AI will help you identify and update the following files with your plugin in
|
|||||||
6. **languages/pot file**: Rename and update the POT file
|
6. **languages/pot file**: Rename and update the POT file
|
||||||
7. **.github/workflows/**: Update GitHub Actions workflows with your repository information
|
7. **.github/workflows/**: Update GitHub Actions workflows with your repository information
|
||||||
8. **.wiki/**: Update wiki documentation with your plugin information
|
8. **.wiki/**: Update wiki documentation with your plugin information
|
||||||
9. **.ai-assistant.md**: Update AI assistant guidance for your specific plugin
|
9. **AGENTS.md**: Update AI assistant guidance for your specific plugin
|
||||||
10. **includes/plugin.php**: Update namespace and class references
|
10. **includes/plugin.php**: Update namespace and class references
|
||||||
11. **includes/core.php**: Update namespace and customize core functionality
|
11. **includes/core.php**: Update namespace and customize core functionality
|
||||||
12. **admin/lib/admin.php**: Update namespace and customize admin functionality
|
12. **admin/lib/admin.php**: Update namespace and customize admin functionality
|
||||||
@@ -174,7 +174,7 @@ Please guide me through the process of building and testing my plugin:
|
|||||||
To ensure the AI assistant has all the necessary context about your plugin's structure and best practices:
|
To ensure the AI assistant has all the necessary context about your plugin's structure and best practices:
|
||||||
|
|
||||||
```
|
```
|
||||||
Please add the .ai-assistant.md and .ai-workflows/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
Please add the AGENTS.md and .agents/ directory to your AI IDE chat context. In most AI IDEs, you can pin these files to ensure they're considered in each message. This will help the AI understand the project structure and follow the established best practices.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Remember
|
## Remember
|
||||||
@@ -183,7 +183,7 @@ Please add the .ai-assistant.md and .ai-workflows/ directory to your AI IDE chat
|
|||||||
- The AI assistant can help you understand the existing code and make appropriate modifications, but you should review all changes to ensure they meet your requirements.
|
- The AI assistant can help you understand the existing code and make appropriate modifications, but you should review all changes to ensure they meet your requirements.
|
||||||
- Always test your plugin thoroughly before releasing it.
|
- Always test your plugin thoroughly before releasing it.
|
||||||
- Keep documentation updated as you develop your plugin.
|
- Keep documentation updated as you develop your plugin.
|
||||||
- Pin the .ai-assistant.md and .ai-workflows/ files in your AI IDE chat to ensure the AI has the necessary context for each interaction.
|
- Pin the AGENTS.md and .agents/ files in your AI IDE chat to ensure the AI has the necessary context for each interaction.
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ The template follows a modular structure:
|
|||||||
- `js/`: Admin JavaScript files
|
- `js/`: Admin JavaScript files
|
||||||
- `languages/`: Translation files
|
- `languages/`: Translation files
|
||||||
- `.github/workflows/`: GitHub Actions workflows
|
- `.github/workflows/`: GitHub Actions workflows
|
||||||
- `.ai-workflows/`: Documentation for AI assistants
|
- `.agents/`: Documentation for AI assistants
|
||||||
- `.wiki/`: Wiki documentation templates
|
- `.wiki/`: Wiki documentation templates
|
||||||
|
|
||||||
### Customizing for Your Plugin
|
### Customizing for Your Plugin
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: WordPress Plugin Starter Template
|
* Plugin Name: WordPress Plugin Starter Template
|
||||||
* Plugin URI: https://www.wpallstars.com
|
* Plugin URI: https://www.wpallstars.com
|
||||||
* Description: A comprehensive starter template for WordPress plugins with best practices for AI-assisted development.
|
* Description: A comprehensive starter template for WordPress plugins with best practices for AI-assisted development.
|
||||||
* Version: 0.1.11
|
* Version: 0.1.15
|
||||||
* Author: Your Name & The WPALLSTARS Team
|
* Author: Your Name & The WPALLSTARS Team
|
||||||
* Author URI: https://www.wpallstars.com
|
* Author URI: https://www.wpallstars.com
|
||||||
* License: GPL-2.0+
|
* License: GPL-2.0+
|
||||||
@@ -35,7 +35,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|||||||
require_once plugin_dir_path( __FILE__ ) . 'includes/class-plugin.php';
|
require_once plugin_dir_path( __FILE__ ) . 'includes/class-plugin.php';
|
||||||
|
|
||||||
// Initialize the plugin and store the instance in a global variable.
|
// Initialize the plugin and store the instance in a global variable.
|
||||||
$wpst_plugin = new WPALLSTARS\PluginStarterTemplate\Plugin( __FILE__, '0.1.11' );
|
$wpst_plugin = new WPALLSTARS\PluginStarterTemplate\Plugin( __FILE__, '0.1.15' );
|
||||||
|
|
||||||
// Initialize the plugin.
|
// Initialize the plugin.
|
||||||
$wpst_plugin->init();
|
$wpst_plugin->init();
|
||||||
Reference in new issue
Block a user