Initial commit
This commit is contained in:
77
skills/agents/templates/scoped/backend-go.md
Normal file
77
skills/agents/templates/scoped/backend-go.md
Normal file
@@ -0,0 +1,77 @@
|
||||
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
||||
|
||||
# AGENTS.md — {{SCOPE_NAME}}
|
||||
|
||||
## Overview
|
||||
{{SCOPE_DESCRIPTION}}
|
||||
|
||||
## Setup & environment
|
||||
- Install: `go mod download`
|
||||
- Go version: {{GO_VERSION}}
|
||||
- Required tools: {{GO_TOOLS}}
|
||||
- Environment variables: {{ENV_VARS}}
|
||||
|
||||
## Build & tests (prefer file-scoped)
|
||||
- Typecheck a file: `go build -v {{FILE_PATH}}`
|
||||
- Format a file: `gofmt -w {{FILE_PATH}}`
|
||||
- Lint a file: `golangci-lint run {{FILE_PATH}}`
|
||||
- Test a file: `go test -v -race -short {{FILE_PATH}}`
|
||||
- Build: {{BUILD_CMD}}
|
||||
|
||||
## Code style & conventions
|
||||
- Follow Go 1.{{GO_MINOR_VERSION}} idioms
|
||||
- Use standard library over external deps when possible
|
||||
- Errors: wrap with `fmt.Errorf("context: %w", err)`
|
||||
- Naming: `camelCase` for private, `PascalCase` for exported
|
||||
- Struct tags: use canonical form (json, yaml, etc.)
|
||||
- Comments: complete sentences ending with period
|
||||
- Package docs: first sentence summarizes purpose
|
||||
|
||||
## Security & safety
|
||||
- Validate all inputs from external sources
|
||||
- Use `context.Context` for cancellation and timeouts
|
||||
- Avoid goroutine leaks: always ensure termination paths
|
||||
- Sensitive data: never log or include in errors
|
||||
- SQL: use parameterized queries only
|
||||
- File paths: validate and sanitize user-provided paths
|
||||
|
||||
## PR/commit checklist
|
||||
- [ ] Tests pass: `go test -v -race ./...`
|
||||
- [ ] Lint clean: `golangci-lint run ./...`
|
||||
- [ ] Formatted: `gofmt -w .`
|
||||
- [ ] No goroutine leaks
|
||||
- [ ] Error messages are descriptive
|
||||
- [ ] Public APIs have godoc comments
|
||||
|
||||
## Good vs. bad examples
|
||||
**Good**: Descriptive error wrapping
|
||||
```go
|
||||
if err := db.Query(); err != nil {
|
||||
return fmt.Errorf("failed to query users table: %w", err)
|
||||
}
|
||||
```
|
||||
|
||||
**Bad**: Generic error messages
|
||||
```go
|
||||
if err := db.Query(); err != nil {
|
||||
return fmt.Errorf("error: %w", err)
|
||||
}
|
||||
```
|
||||
|
||||
**Good**: Proper context usage
|
||||
```go
|
||||
func (s *Service) FetchData(ctx context.Context, id string) error {
|
||||
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
|
||||
defer cancel()
|
||||
return s.client.Get(ctx, id)
|
||||
}
|
||||
```
|
||||
|
||||
## When stuck
|
||||
- Check Go documentation: https://pkg.go.dev
|
||||
- Review existing patterns in this codebase
|
||||
- Check root AGENTS.md for project-wide conventions
|
||||
- Run `go doc <package>` for standard library help
|
||||
|
||||
## House Rules (optional)
|
||||
{{HOUSE_RULES}}
|
||||
85
skills/agents/templates/scoped/backend-php.md
Normal file
85
skills/agents/templates/scoped/backend-php.md
Normal file
@@ -0,0 +1,85 @@
|
||||
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
||||
|
||||
# AGENTS.md — {{SCOPE_NAME}}
|
||||
|
||||
## Overview
|
||||
{{SCOPE_DESCRIPTION}}
|
||||
|
||||
## Setup & environment
|
||||
- Install: `composer install`
|
||||
- PHP version: {{PHP_VERSION}}
|
||||
- Framework: {{FRAMEWORK}}
|
||||
- Required extensions: {{PHP_EXTENSIONS}}
|
||||
- Environment variables: {{ENV_VARS}}
|
||||
|
||||
## Build & tests (prefer file-scoped)
|
||||
- Typecheck a file: `vendor/bin/phpstan analyze {{FILE_PATH}} --level={{PHPSTAN_LEVEL}}`
|
||||
- Format a file: `vendor/bin/php-cs-fixer fix {{FILE_PATH}}`
|
||||
- Lint a file: `php -l {{FILE_PATH}}`
|
||||
- Test a file: `vendor/bin/phpunit {{FILE_PATH}}`
|
||||
- Build: {{BUILD_CMD}}
|
||||
|
||||
## Code style & conventions
|
||||
- Follow PSR-12 coding standard
|
||||
- Use strict types: `declare(strict_types=1);`
|
||||
- Type hints: always use for parameters and return types
|
||||
- Naming: `camelCase` for methods, `PascalCase` for classes
|
||||
- Visibility: always declare (public, protected, private)
|
||||
- PHPDoc: required for public APIs, include `@param` and `@return`
|
||||
{{FRAMEWORK_CONVENTIONS}}
|
||||
|
||||
## Security & safety
|
||||
- Validate and sanitize all user inputs
|
||||
- Use prepared statements for database queries
|
||||
- Escape output in templates
|
||||
- Never use `eval()` or dynamic code execution
|
||||
- Sensitive data: never log or expose in errors
|
||||
- CSRF protection: enable for all forms
|
||||
- XSS protection: escape all user-generated content
|
||||
|
||||
## PR/commit checklist
|
||||
- [ ] Tests pass: `vendor/bin/phpunit`
|
||||
- [ ] PHPStan Level {{PHPSTAN_LEVEL}} clean: `vendor/bin/phpstan analyze`
|
||||
- [ ] PSR-12 compliant: `vendor/bin/php-cs-fixer fix --dry-run`
|
||||
- [ ] No deprecated functions used
|
||||
- [ ] Public methods have PHPDoc
|
||||
- [ ] Security: inputs validated, outputs escaped
|
||||
|
||||
## Good vs. bad examples
|
||||
**Good**: Proper type hints and strict types
|
||||
```php
|
||||
declare(strict_types=1);
|
||||
|
||||
public function calculateTotal(int $quantity, float $price): float
|
||||
{
|
||||
return $quantity * $price;
|
||||
}
|
||||
```
|
||||
|
||||
**Bad**: Missing type hints
|
||||
```php
|
||||
public function calculateTotal($quantity, $price)
|
||||
{
|
||||
return $quantity * $price;
|
||||
}
|
||||
```
|
||||
|
||||
**Good**: Prepared statements
|
||||
```php
|
||||
$stmt = $db->prepare('SELECT * FROM users WHERE id = :id');
|
||||
$stmt->execute(['id' => $userId]);
|
||||
```
|
||||
|
||||
**Bad**: String concatenation
|
||||
```php
|
||||
$result = $db->query("SELECT * FROM users WHERE id = " . $userId);
|
||||
```
|
||||
|
||||
## When stuck
|
||||
- Check PHP documentation: https://www.php.net
|
||||
- {{FRAMEWORK_DOCS}}
|
||||
- Review existing patterns in this codebase
|
||||
- Check root AGENTS.md for project-wide conventions
|
||||
|
||||
## House Rules (optional)
|
||||
{{HOUSE_RULES}}
|
||||
84
skills/agents/templates/scoped/cli.md
Normal file
84
skills/agents/templates/scoped/cli.md
Normal file
@@ -0,0 +1,84 @@
|
||||
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
||||
|
||||
# AGENTS.md — {{SCOPE_NAME}}
|
||||
|
||||
## Overview
|
||||
{{SCOPE_DESCRIPTION}}
|
||||
|
||||
Command-line interface tools and entry points.
|
||||
|
||||
## Setup & environment
|
||||
{{SETUP_INSTRUCTIONS}}
|
||||
- CLI framework: {{CLI_FRAMEWORK}}
|
||||
- Build output: {{BUILD_OUTPUT_PATH}}
|
||||
|
||||
## Build & tests (prefer file-scoped)
|
||||
- Build CLI: {{BUILD_CMD}}
|
||||
- Run CLI: {{RUN_CMD}}
|
||||
- Test: {{TEST_CMD}}
|
||||
- Lint: {{LINT_CMD}}
|
||||
|
||||
## Code style & conventions
|
||||
- Use flag parsing library consistently ({{CLI_FRAMEWORK}})
|
||||
- Provide `--help` for all commands and subcommands
|
||||
- Use `--version` to display version information
|
||||
- Exit codes: 0 = success, 1 = general error, 2 = usage error
|
||||
- Output: structured (JSON) for scripts, human-readable for interactive
|
||||
- Errors: write to stderr, not stdout
|
||||
- Progress: show for long-running operations
|
||||
- Interactive prompts: support non-interactive mode with flags
|
||||
|
||||
## Security & safety
|
||||
- Validate all file paths and prevent directory traversal
|
||||
- Never execute user-provided code without explicit confirmation
|
||||
- Sensitive data: never log or display in plain text
|
||||
- Config files: validate schema and permissions
|
||||
- Network operations: timeout and retry with backoff
|
||||
|
||||
## PR/commit checklist
|
||||
- [ ] `--help` text is clear and accurate
|
||||
- [ ] `--version` displays correct version
|
||||
- [ ] Exit codes are correct
|
||||
- [ ] Errors go to stderr
|
||||
- [ ] Long operations show progress
|
||||
- [ ] Works in non-interactive mode
|
||||
- [ ] Tests cover main workflows
|
||||
|
||||
## Good vs. bad examples
|
||||
**Good**: Proper error handling
|
||||
```{{LANGUAGE}}
|
||||
if err := runCommand(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
```
|
||||
|
||||
**Bad**: Errors to stdout
|
||||
```{{LANGUAGE}}
|
||||
if err := runCommand(); err != nil {
|
||||
fmt.Println("Error:", err)
|
||||
}
|
||||
```
|
||||
|
||||
**Good**: Clear help text
|
||||
```
|
||||
Usage: myapp <command> [options]
|
||||
|
||||
Commands:
|
||||
init Initialize a new project
|
||||
build Build the project
|
||||
deploy Deploy to production
|
||||
|
||||
Options:
|
||||
--config string Config file path (default: config.yaml)
|
||||
--verbose Enable verbose output
|
||||
```
|
||||
|
||||
## When stuck
|
||||
- Review {{CLI_FRAMEWORK}} documentation
|
||||
- Check existing commands for patterns
|
||||
- Test with `--help` to ensure clarity
|
||||
- Check root AGENTS.md for project conventions
|
||||
|
||||
## House Rules (optional)
|
||||
{{HOUSE_RULES}}
|
||||
96
skills/agents/templates/scoped/frontend-typescript.md
Normal file
96
skills/agents/templates/scoped/frontend-typescript.md
Normal file
@@ -0,0 +1,96 @@
|
||||
<!-- Managed by agent: keep sections and order; edit content, not structure. Last updated: {{TIMESTAMP}} -->
|
||||
|
||||
# AGENTS.md — {{SCOPE_NAME}}
|
||||
|
||||
## Overview
|
||||
{{SCOPE_DESCRIPTION}}
|
||||
|
||||
## Setup & environment
|
||||
- Install: `npm install` or `yarn install`
|
||||
- Node version: {{NODE_VERSION}}
|
||||
- Framework: {{FRAMEWORK}}
|
||||
- Package manager: {{PACKAGE_MANAGER}}
|
||||
- Environment variables: {{ENV_VARS}}
|
||||
|
||||
## Build & tests (prefer file-scoped)
|
||||
- Typecheck a file: `npx tsc --noEmit {{FILE_PATH}}`
|
||||
- Lint a file: `npx eslint {{FILE_PATH}}`
|
||||
- Format a file: `npx prettier --write {{FILE_PATH}}`
|
||||
- Test a file: `npm test {{FILE_PATH}}`
|
||||
- Build: {{BUILD_CMD}}
|
||||
- Dev server: {{DEV_CMD}}
|
||||
|
||||
## Code style & conventions
|
||||
- TypeScript strict mode enabled
|
||||
- Use functional components with hooks (React)
|
||||
- Naming: `camelCase` for variables/functions, `PascalCase` for components
|
||||
- File naming: `ComponentName.tsx`, `utilityName.ts`
|
||||
- Imports: group and sort (external, internal, types)
|
||||
- CSS: {{CSS_APPROACH}} (CSS Modules, Tailwind, styled-components, etc.)
|
||||
{{FRAMEWORK_CONVENTIONS}}
|
||||
|
||||
## Security & safety
|
||||
- Sanitize user inputs before rendering
|
||||
- Use `dangerouslySetInnerHTML` only with sanitized content
|
||||
- Validate environment variables at build time
|
||||
- Never expose secrets in client-side code
|
||||
- Use HTTPS for all API calls
|
||||
- Implement CSP headers
|
||||
- WCAG 2.2 AA accessibility compliance
|
||||
|
||||
## PR/commit checklist
|
||||
- [ ] Tests pass: `npm test`
|
||||
- [ ] TypeScript compiles: `npx tsc --noEmit`
|
||||
- [ ] Lint clean: `npm run lint`
|
||||
- [ ] Formatted: `npm run format`
|
||||
- [ ] Accessibility: keyboard navigation works, ARIA labels present
|
||||
- [ ] Responsive: tested on mobile, tablet, desktop
|
||||
- [ ] Performance: no unnecessary re-renders
|
||||
|
||||
## Good vs. bad examples
|
||||
**Good**: Proper TypeScript typing
|
||||
```typescript
|
||||
interface User {
|
||||
id: string;
|
||||
name: string;
|
||||
email: string;
|
||||
}
|
||||
|
||||
function UserCard({ user }: { user: User }): JSX.Element {
|
||||
return <div>{user.name}</div>;
|
||||
}
|
||||
```
|
||||
|
||||
**Bad**: Using `any`
|
||||
```typescript
|
||||
function UserCard({ user }: { user: any }) {
|
||||
return <div>{user.name}</div>;
|
||||
}
|
||||
```
|
||||
|
||||
**Good**: Accessible button
|
||||
```tsx
|
||||
<button
|
||||
onClick={handleClick}
|
||||
aria-label="Close dialog"
|
||||
type="button"
|
||||
>
|
||||
<CloseIcon />
|
||||
</button>
|
||||
```
|
||||
|
||||
**Bad**: Non-semantic click handler
|
||||
```tsx
|
||||
<div onClick={handleClick}>
|
||||
<CloseIcon />
|
||||
</div>
|
||||
```
|
||||
|
||||
## When stuck
|
||||
- Check {{FRAMEWORK}} documentation: {{FRAMEWORK_DOCS}}
|
||||
- Review TypeScript handbook: https://www.typescriptlang.org/docs/
|
||||
- Check root AGENTS.md for project-wide conventions
|
||||
- Review existing components for patterns
|
||||
|
||||
## House Rules (optional)
|
||||
{{HOUSE_RULES}}
|
||||
Reference in New Issue
Block a user