@synapta/skills 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -4
- package/package.json +3 -4
- package/skills/ATTRIBUTION.md +80 -0
- package/skills/accessibility-audit/SKILL.md +325 -0
- package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
- package/skills/apns-notifier/SKILL.md +86 -0
- package/skills/approval-policy-enforcer/SKILL.md +66 -0
- package/skills/apps-sdk-builder/LICENSE.txt +201 -0
- package/skills/apps-sdk-builder/SKILL.md +328 -0
- package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
- package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
- package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
- package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
- package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
- package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
- package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
- package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/architecture-selector/SKILL.md +64 -0
- package/skills/backlog-planner/SKILL.md +68 -0
- package/skills/carplay-entitlement-checker/SKILL.md +82 -0
- package/skills/concept-discovery/SKILL.md +517 -0
- package/skills/concept-discovery/assets/sample-analysis.json +81 -0
- package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
- package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
- package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
- package/skills/concept-discovery/references/framework-patterns.md +228 -0
- package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
- package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
- package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
- package/skills/dast-zap/SKILL.md +453 -0
- package/skills/dast-zap/assets/.gitkeep +9 -0
- package/skills/dast-zap/assets/github_action.yml +207 -0
- package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
- package/skills/dast-zap/assets/zap_automation.yaml +196 -0
- package/skills/dast-zap/assets/zap_context.xml +192 -0
- package/skills/dast-zap/references/EXAMPLE.md +40 -0
- package/skills/dast-zap/references/api_testing_guide.md +475 -0
- package/skills/dast-zap/references/authentication_guide.md +431 -0
- package/skills/dast-zap/references/false_positive_handling.md +427 -0
- package/skills/dast-zap/references/owasp_mapping.md +255 -0
- package/skills/dep-sbom-scan/SKILL.md +466 -0
- package/skills/deploy-cloudflare/SKILL.md +930 -0
- package/skills/deploy-docker/SKILL.md +55 -0
- package/skills/deploy-fly/SKILL.md +228 -0
- package/skills/deploy-k8s/SKILL.md +108 -0
- package/skills/deploy-k8s/assets/logo.png +0 -0
- package/skills/deploy-k8s/docs/README.md +29 -0
- package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
- package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
- package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
- package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
- package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
- package/skills/deploy-k8s/docs/book.json +16 -0
- package/skills/deploy-k8s/docs/community/changelog.md +34 -0
- package/skills/deploy-k8s/docs/community/contributing.md +67 -0
- package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
- package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
- package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
- package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
- package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
- package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
- package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
- package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
- package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
- package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
- package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
- package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
- package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
- package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
- package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
- package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
- package/skills/deploy-k8s/docs/guides/observability.md +67 -0
- package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
- package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
- package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
- package/skills/deploy-k8s/docs/package-lock.json +2892 -0
- package/skills/deploy-k8s/docs/package.json +13 -0
- package/skills/deploy-k8s/references/api-drift.md +298 -0
- package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
- package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
- package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
- package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
- package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
- package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
- package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
- package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
- package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
- package/skills/deploy-k8s/references/examples-bad.md +282 -0
- package/skills/deploy-k8s/references/examples-good.md +440 -0
- package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
- package/skills/deploy-k8s/references/helm-patterns.md +203 -0
- package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
- package/skills/deploy-k8s/references/job-patterns.md +120 -0
- package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
- package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
- package/skills/deploy-k8s/references/network-exposure.md +481 -0
- package/skills/deploy-k8s/references/observability.md +302 -0
- package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
- package/skills/deploy-k8s/references/resource-starvation.md +374 -0
- package/skills/deploy-k8s/references/security-hardening.md +209 -0
- package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
- package/skills/deploy-k8s/references/storage-and-state.md +330 -0
- package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
- package/skills/deploy-railway/SKILL.md +235 -0
- package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
- package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
- package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
- package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
- package/skills/deploy-railway/references/analyze-db.md +344 -0
- package/skills/deploy-railway/references/configure.md +309 -0
- package/skills/deploy-railway/references/deploy.md +195 -0
- package/skills/deploy-railway/references/operate.md +214 -0
- package/skills/deploy-railway/references/request.md +248 -0
- package/skills/deploy-railway/references/setup.md +312 -0
- package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
- package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
- package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
- package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
- package/skills/deploy-railway/scripts/dal.py +671 -0
- package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
- package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
- package/skills/deploy-railway/scripts/railway-api.sh +52 -0
- package/skills/deploy-ssh/SKILL.md +91 -0
- package/skills/deploy-vercel/SKILL.md +304 -0
- package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
- package/skills/deploy-vercel/resources/deploy.sh +301 -0
- package/skills/docs-runbooks/SKILL.md +399 -0
- package/skills/drive-status-renderer/SKILL.md +62 -0
- package/skills/iac-scan/SKILL.md +680 -0
- package/skills/iac-scan/assets/.gitkeep +9 -0
- package/skills/iac-scan/assets/checkov_config.yaml +94 -0
- package/skills/iac-scan/assets/github_actions.yml +199 -0
- package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
- package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
- package/skills/iac-scan/references/EXAMPLE.md +40 -0
- package/skills/iac-scan/references/compliance_mapping.md +237 -0
- package/skills/iac-scan/references/custom_policies.md +460 -0
- package/skills/iac-scan/references/suppression_guide.md +431 -0
- package/skills/incident-briefing/SKILL.md +66 -0
- package/skills/incident-triage/SKILL.md +481 -0
- package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
- package/skills/mcp-builder/SKILL.md +244 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mobile-pairing/SKILL.md +52 -0
- package/skills/ops-sre/SKILL.md +297 -0
- package/skills/playwright-qa/LICENSE.txt +201 -0
- package/skills/playwright-qa/NOTICE.txt +14 -0
- package/skills/playwright-qa/SKILL.md +156 -0
- package/skills/playwright-qa/agents/openai.yaml +6 -0
- package/skills/playwright-qa/assets/playwright-small.svg +3 -0
- package/skills/playwright-qa/assets/playwright.png +0 -0
- package/skills/playwright-qa/references/cli.md +116 -0
- package/skills/playwright-qa/references/workflows.md +95 -0
- package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
- package/skills/release-publish/SKILL.md +85 -0
- package/skills/repo-bootstrap/SKILL.md +92 -0
- package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
- package/skills/repo-bootstrap/assets/root-thin.md +141 -0
- package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
- package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
- package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
- package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
- package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
- package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
- package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
- package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
- package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
- package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
- package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
- package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
- package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
- package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
- package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
- package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
- package/skills/repo-bootstrap/checkpoints.yaml +279 -0
- package/skills/repo-bootstrap/evals/evals.json +385 -0
- package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
- package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
- package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
- package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
- package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
- package/skills/repo-bootstrap/references/output-structure.md +124 -0
- package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
- package/skills/repo-bootstrap/references/verification-guide.md +137 -0
- package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
- package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
- package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
- package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
- package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
- package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
- package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
- package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
- package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
- package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
- package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
- package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
- package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
- package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
- package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
- package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
- package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
- package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
- package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
- package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
- package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
- package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
- package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
- package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
- package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
- package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
- package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
- package/skills/schema-api-contracts/SKILL.md +56 -0
- package/skills/secret-hygiene/SKILL.md +511 -0
- package/skills/secret-hygiene/assets/.gitkeep +9 -0
- package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
- package/skills/secret-hygiene/assets/config-custom.toml +178 -0
- package/skills/secret-hygiene/assets/config-strict.toml +48 -0
- package/skills/secret-hygiene/assets/github-action.yml +181 -0
- package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
- package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
- package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
- package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
- package/skills/secret-hygiene/references/detection_rules.md +276 -0
- package/skills/secret-hygiene/references/false_positives.md +598 -0
- package/skills/secret-hygiene/references/remediation_guide.md +530 -0
- package/skills/stack-selector/SKILL.md +56 -0
- package/skills/telegram-control/SKILL.md +110 -0
- package/skills/telegram-control/references/architecture.md +184 -0
- package/skills/telegram-control/references/convex.md +173 -0
- package/skills/telegram-control/references/error_handling.md +212 -0
- package/skills/telegram-control/references/initial_setup.md +165 -0
- package/skills/telegram-control/references/telegram_api.md +156 -0
- package/skills/telegram-control/scripts/cancel_message.ts +53 -0
- package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
- package/skills/telegram-control/scripts/logger.ts +121 -0
- package/skills/telegram-control/scripts/proxy-util.ts +11 -0
- package/skills/telegram-control/scripts/schedule_message.ts +216 -0
- package/skills/telegram-control/scripts/send_message.ts +115 -0
- package/skills/telegram-control/scripts/setup.ts +185 -0
- package/skills/telegram-control/scripts/types.ts +75 -0
- package/skills/telegram-control/scripts/view_history.ts +74 -0
- package/skills/test-strategy/SKILL.md +352 -0
- package/skills/threat-model/SKILL.md +303 -0
- package/skills/threat-model/examples/example-output.md +196 -0
- package/skills/threat-model/template.md +96 -0
- package/skills/ts-lint/SKILL.md +80 -0
- package/skills/ui-flow/SKILL.md +668 -0
- package/skills/voice-command-router/SKILL.md +51 -0
- package/skills/widget-live-activity-sync/SKILL.md +66 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Playwright CLI Reference
|
|
2
|
+
|
|
3
|
+
Use the wrapper script unless the CLI is already installed globally:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
|
|
7
|
+
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"
|
|
8
|
+
"$PWCLI" --help
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).
|
|
12
|
+
|
|
13
|
+
Optional convenience alias:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
alias pwcli="$PWCLI"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Core
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pwcli open https://example.com
|
|
23
|
+
pwcli close
|
|
24
|
+
pwcli snapshot
|
|
25
|
+
pwcli click e3
|
|
26
|
+
pwcli dblclick e7
|
|
27
|
+
pwcli type "search terms"
|
|
28
|
+
pwcli press Enter
|
|
29
|
+
pwcli fill e5 "user@example.com"
|
|
30
|
+
pwcli drag e2 e8
|
|
31
|
+
pwcli hover e4
|
|
32
|
+
pwcli select e9 "option-value"
|
|
33
|
+
pwcli upload ./document.pdf
|
|
34
|
+
pwcli check e12
|
|
35
|
+
pwcli uncheck e12
|
|
36
|
+
pwcli eval "document.title"
|
|
37
|
+
pwcli eval "el => el.textContent" e5
|
|
38
|
+
pwcli dialog-accept
|
|
39
|
+
pwcli dialog-accept "confirmation text"
|
|
40
|
+
pwcli dialog-dismiss
|
|
41
|
+
pwcli resize 1920 1080
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Navigation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pwcli go-back
|
|
48
|
+
pwcli go-forward
|
|
49
|
+
pwcli reload
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Keyboard
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
pwcli press Enter
|
|
56
|
+
pwcli press ArrowDown
|
|
57
|
+
pwcli keydown Shift
|
|
58
|
+
pwcli keyup Shift
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Mouse
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pwcli mousemove 150 300
|
|
65
|
+
pwcli mousedown
|
|
66
|
+
pwcli mousedown right
|
|
67
|
+
pwcli mouseup
|
|
68
|
+
pwcli mouseup right
|
|
69
|
+
pwcli mousewheel 0 100
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Save as
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pwcli screenshot
|
|
76
|
+
pwcli screenshot e5
|
|
77
|
+
pwcli pdf
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Tabs
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pwcli tab-list
|
|
84
|
+
pwcli tab-new
|
|
85
|
+
pwcli tab-new https://example.com/page
|
|
86
|
+
pwcli tab-close
|
|
87
|
+
pwcli tab-close 2
|
|
88
|
+
pwcli tab-select 0
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## DevTools
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pwcli console
|
|
95
|
+
pwcli console warning
|
|
96
|
+
pwcli network
|
|
97
|
+
pwcli run-code "await page.waitForTimeout(1000)"
|
|
98
|
+
pwcli tracing-start
|
|
99
|
+
pwcli tracing-stop
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Sessions
|
|
103
|
+
|
|
104
|
+
Use a named session to isolate work:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
pwcli --session todo open https://demo.playwright.dev/todomvc
|
|
108
|
+
pwcli --session todo snapshot
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Or set an environment variable once:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
export PLAYWRIGHT_CLI_SESSION=todo
|
|
115
|
+
pwcli open https://demo.playwright.dev/todomvc
|
|
116
|
+
```
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Playwright CLI Workflows
|
|
2
|
+
|
|
3
|
+
Use the wrapper script and snapshot often.
|
|
4
|
+
Assume `PWCLI` is set and `pwcli` is an alias for `"$PWCLI"`.
|
|
5
|
+
In this repo, run commands from `output/playwright/<label>/` to keep artifacts contained.
|
|
6
|
+
|
|
7
|
+
## Standard interaction loop
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pwcli open https://example.com
|
|
11
|
+
pwcli snapshot
|
|
12
|
+
pwcli click e3
|
|
13
|
+
pwcli snapshot
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Form submission
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pwcli open https://example.com/form --headed
|
|
20
|
+
pwcli snapshot
|
|
21
|
+
pwcli fill e1 "user@example.com"
|
|
22
|
+
pwcli fill e2 "password123"
|
|
23
|
+
pwcli click e3
|
|
24
|
+
pwcli snapshot
|
|
25
|
+
pwcli screenshot
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Data extraction
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pwcli open https://example.com
|
|
32
|
+
pwcli snapshot
|
|
33
|
+
pwcli eval "document.title"
|
|
34
|
+
pwcli eval "el => el.textContent" e12
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Debugging and inspection
|
|
38
|
+
|
|
39
|
+
Capture console messages and network activity after reproducing an issue:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pwcli console warning
|
|
43
|
+
pwcli network
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Record a trace around a suspicious flow:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pwcli tracing-start
|
|
50
|
+
# reproduce the issue
|
|
51
|
+
pwcli tracing-stop
|
|
52
|
+
pwcli screenshot
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Sessions
|
|
56
|
+
|
|
57
|
+
Use sessions to isolate work across projects:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pwcli --session marketing open https://example.com
|
|
61
|
+
pwcli --session marketing snapshot
|
|
62
|
+
pwcli --session checkout open https://example.com/checkout
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Or set the session once:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
export PLAYWRIGHT_CLI_SESSION=checkout
|
|
69
|
+
pwcli open https://example.com/checkout
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Configuration file
|
|
73
|
+
|
|
74
|
+
By default, the CLI reads `playwright-cli.json` from the current directory. Use `--config` to point at a specific file.
|
|
75
|
+
|
|
76
|
+
Minimal example:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"browser": {
|
|
81
|
+
"launchOptions": {
|
|
82
|
+
"headless": false
|
|
83
|
+
},
|
|
84
|
+
"contextOptions": {
|
|
85
|
+
"viewport": { "width": 1280, "height": 720 }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Troubleshooting
|
|
92
|
+
|
|
93
|
+
- If an element ref fails, run `pwcli snapshot` again and retry.
|
|
94
|
+
- If the page looks wrong, re-open with `--headed` and resize the window.
|
|
95
|
+
- If a flow depends on prior state, use a named `--session`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if ! command -v npx >/dev/null 2>&1; then
|
|
5
|
+
echo "Error: npx is required but not found on PATH." >&2
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
has_session_flag="false"
|
|
10
|
+
for arg in "$@"; do
|
|
11
|
+
case "$arg" in
|
|
12
|
+
--session|--session=*)
|
|
13
|
+
has_session_flag="true"
|
|
14
|
+
break
|
|
15
|
+
;;
|
|
16
|
+
esac
|
|
17
|
+
done
|
|
18
|
+
|
|
19
|
+
cmd=(npx --yes --package @playwright/cli playwright-cli)
|
|
20
|
+
if [[ "${has_session_flag}" != "true" && -n "${PLAYWRIGHT_CLI_SESSION:-}" ]]; then
|
|
21
|
+
cmd+=(--session "${PLAYWRIGHT_CLI_SESSION}")
|
|
22
|
+
fi
|
|
23
|
+
cmd+=("$@")
|
|
24
|
+
|
|
25
|
+
exec "${cmd[@]}"
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-publish
|
|
3
|
+
description: Publish npm packages with Trusted Publishing (OIDC), provenance, Changesets, and pack-smoke tests. Never store `NPM_TOKEN` in CI secrets; never `npm unpublish`.
|
|
4
|
+
triggers: [synapta release, npm publish, provenance, OIDC, trusted publishing, Changesets]
|
|
5
|
+
network: allowlist
|
|
6
|
+
tools: [Bash, Read, Edit]
|
|
7
|
+
source:
|
|
8
|
+
origin: authored-by-synapta
|
|
9
|
+
reason: "skills.rest source returned 403 at adoption time; aggregator sites generally low-quality."
|
|
10
|
+
citation_patterns:
|
|
11
|
+
- "npm Trusted Publishing (https://docs.npmjs.com/trusted-publishers)"
|
|
12
|
+
- "npm provenance (https://docs.npmjs.com/generating-provenance-statements)"
|
|
13
|
+
- "Changesets (https://github.com/changesets/changesets)"
|
|
14
|
+
- "SLSA (https://slsa.dev)"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Release & Publish
|
|
18
|
+
|
|
19
|
+
Publish to npm from CI only, via Trusted Publishing (OIDC). 2FA enforced on the publishing org. Provenance on every release. SBOM attached to GitHub Releases.
|
|
20
|
+
|
|
21
|
+
## Mandatory rules
|
|
22
|
+
|
|
23
|
+
1. **No `NPM_TOKEN` in CI secrets**. Use Trusted Publishing — GitHub Actions ↔ npm via OIDC. If the org / package isn't on Trusted Publishing yet, do that first.
|
|
24
|
+
2. **`publishConfig.provenance: true`** in every publishable `package.json`.
|
|
25
|
+
3. **2FA enforced** on the publishing org for both account and `publish` actions.
|
|
26
|
+
4. **Never `npm unpublish`** for a public release. Deprecate (`npm deprecate`) and publish a new patch.
|
|
27
|
+
5. **Smoke after pack**: install the `.tgz` in a clean tempdir before publish. If the smoke fails, the publish doesn't run.
|
|
28
|
+
|
|
29
|
+
## Process (Synapta canonical flow)
|
|
30
|
+
|
|
31
|
+
1. `pnpm changeset` — record changes (semver + summary).
|
|
32
|
+
2. `pnpm changeset version` — bumps versions + writes CHANGELOG entries.
|
|
33
|
+
3. Open PR, merge to `main`.
|
|
34
|
+
4. `release.yml` workflow runs on `main`:
|
|
35
|
+
- lint + typecheck + test + build
|
|
36
|
+
- `pnpm pack` each publishable package
|
|
37
|
+
- smoke: clean tempdir, `npm i ./pkg-*.tgz`, run the package's CLI/`--version`
|
|
38
|
+
- security scans (Trivy, gitleaks, semgrep, osv-scanner)
|
|
39
|
+
- **OIDC publish**: `npm publish --provenance`
|
|
40
|
+
- post-publish: `npx <pkg>@<tag> --version` in fresh tempdir
|
|
41
|
+
- attach CycloneDX SBOM + provenance statement to GitHub Release
|
|
42
|
+
|
|
43
|
+
## `package.json` required fields for publishable packages
|
|
44
|
+
|
|
45
|
+
```jsonc
|
|
46
|
+
{
|
|
47
|
+
"name": "@scope/pkg",
|
|
48
|
+
"version": "0.1.0",
|
|
49
|
+
"type": "module",
|
|
50
|
+
"exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" } },
|
|
51
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
52
|
+
"types": "./dist/index.d.ts",
|
|
53
|
+
"engines": { "node": ">=22" },
|
|
54
|
+
"publishConfig": { "access": "public", "provenance": true }
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Tags
|
|
59
|
+
|
|
60
|
+
| Tag | Source branch | Purpose |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| `next` | every merge to `main` | bleeding-edge, integration testing |
|
|
63
|
+
| `beta` | release candidate | external testers |
|
|
64
|
+
| `latest` | tagged release | stable, default `npm install` |
|
|
65
|
+
|
|
66
|
+
## Failure modes
|
|
67
|
+
|
|
68
|
+
- **Provenance build fails** → workflow must abort before publish; provenance is not optional
|
|
69
|
+
- **Smoke install fails on Windows/Linux/macOS** → fix the cause; do not "skip on $OS"
|
|
70
|
+
- **Publish succeeds but verify fails** → open an incident, do not retry blindly; might be a registry cache issue
|
|
71
|
+
- **Deprecate after publish** → use `npm deprecate '<pkg>@<version>' '<reason>'`; never `unpublish`
|
|
72
|
+
|
|
73
|
+
## Rollback
|
|
74
|
+
|
|
75
|
+
There is no "unship" for npm. Options, in order of preference:
|
|
76
|
+
1. Publish a patch (`x.y.z+1`) that reverts the breaking change.
|
|
77
|
+
2. `npm deprecate` the bad version pointing at the patch.
|
|
78
|
+
3. If a secret was published: rotate the secret first; deprecate the version with a note; consider `unpublish` only within the 72-hour window AND if downstream impact is zero. This requires coordination with npm support for popular packages.
|
|
79
|
+
|
|
80
|
+
## Anti-patterns
|
|
81
|
+
|
|
82
|
+
- Long-lived publish tokens stored as secrets
|
|
83
|
+
- Publishing from a developer laptop "just this once"
|
|
84
|
+
- Skipping the post-pack smoke "to save 30 seconds"
|
|
85
|
+
- Using `npm version` (manual) instead of Changesets in a monorepo
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: repo-bootstrap
|
|
3
|
+
synapta_original_name: agent-rules
|
|
4
|
+
triggers: [synapta new, synapta repo init, AGENTS.md, scaffold project, .claude overlay, .codex overlay]
|
|
5
|
+
network: allowlist
|
|
6
|
+
source:
|
|
7
|
+
origin: https://github.com/netresearch/agent-rules-skill
|
|
8
|
+
path: skills/agent-rules
|
|
9
|
+
commit: 9d1c57d1a131
|
|
10
|
+
license: MIT AND CC-BY-SA-4.0 (Netresearch DTT GmbH)
|
|
11
|
+
adapted: light-touch
|
|
12
|
+
description: "Use when creating or updating AGENTS.md files, .github/copilot-instructions.md, or other AI agent rule files, onboarding AI agents to a project, standardizing agent documentation, or when anyone mentions AGENTS.md, agent rules, project onboarding, or codebase documentation for AI agents."
|
|
13
|
+
license: "(MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0"
|
|
14
|
+
compatibility: "Requires bash 4.3+, jq 1.5+, git 2.0+."
|
|
15
|
+
metadata:
|
|
16
|
+
author: Netresearch DTT GmbH
|
|
17
|
+
version: "3.9.1"
|
|
18
|
+
repository: https://github.com/netresearch/agent-rules-skill
|
|
19
|
+
allowed-tools: Bash(git:*) Bash(jq:*) Bash(grep:*) Bash(find:*) Bash(bash:*) Read Glob Grep
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# AGENTS.md Generator Skill
|
|
23
|
+
|
|
24
|
+
Generate and maintain AGENTS.md files following the [agents.md convention](https://agents.md/). AGENTS.md is FOR AGENTS, not humans.
|
|
25
|
+
|
|
26
|
+
## When to Use
|
|
27
|
+
|
|
28
|
+
- Creating or updating AGENTS.md for new/existing projects
|
|
29
|
+
- Standardizing agent documentation across repositories
|
|
30
|
+
- Checking if AGENTS.md files are current with recent code changes
|
|
31
|
+
- Onboarding AI agents to an unfamiliar codebase
|
|
32
|
+
|
|
33
|
+
## Scripts
|
|
34
|
+
|
|
35
|
+
| Script | Purpose |
|
|
36
|
+
|--------|---------|
|
|
37
|
+
| `scripts/generate-agents.sh PATH` | Generate AGENTS.md files |
|
|
38
|
+
| `scripts/validate-structure.sh PATH` | Validate structure compliance |
|
|
39
|
+
| `scripts/check-freshness.sh PATH` | Check if files are outdated |
|
|
40
|
+
| `scripts/verify-content.sh PATH` | Verify documented files/commands match codebase |
|
|
41
|
+
| `scripts/verify-commands.sh PATH` | Verify documented commands execute |
|
|
42
|
+
| `scripts/detect-project.sh PATH` | Detect language, version, build tools |
|
|
43
|
+
| `scripts/detect-scopes.sh PATH` | Identify directories needing scoped files |
|
|
44
|
+
| `scripts/extract-commands.sh PATH` | Extract commands from build configs |
|
|
45
|
+
| `scripts/extract-ci-rules.sh PATH` | Extract CI quality gates and version matrix |
|
|
46
|
+
| `scripts/extract-architecture-rules.sh PATH` | Extract module boundaries |
|
|
47
|
+
| `scripts/extract-adrs.sh PATH` | Extract architectural decision records |
|
|
48
|
+
| `scripts/extract-github-rulesets.sh PATH` | Extract GitHub rulesets and merge rules |
|
|
49
|
+
|
|
50
|
+
See `references/scripts-guide.md` for full options.
|
|
51
|
+
|
|
52
|
+
## Workflow
|
|
53
|
+
|
|
54
|
+
1. **Detect**: `detect-project.sh` + `detect-scopes.sh` to identify stacks and subsystems
|
|
55
|
+
2. **Extract**: `extract-commands.sh`, `extract-ci-rules.sh`, etc. to gather facts
|
|
56
|
+
3. **Generate**: `generate-agents.sh` with `--style=thin` (default) or `--verbose`
|
|
57
|
+
4. **Verify**: `verify-content.sh` + `verify-commands.sh` -- MANDATORY before done
|
|
58
|
+
|
|
59
|
+
Use `--update` to preserve human-curated content outside `<!-- GENERATED -->` markers.
|
|
60
|
+
|
|
61
|
+
## Core Principles
|
|
62
|
+
|
|
63
|
+
- **Structured over Prose** -- tables parse faster than paragraphs
|
|
64
|
+
- **Never Fabricate** -- only document what exists; verify every command and path
|
|
65
|
+
- **Pointer Principle** -- point to files, don't duplicate content
|
|
66
|
+
- **Auto Symlinks** -- CLAUDE.md/GEMINI.md symlinks by default (see [`ai-tool-compatibility.md`](references/ai-tool-compatibility.md))
|
|
67
|
+
|
|
68
|
+
## References
|
|
69
|
+
|
|
70
|
+
| File | Contents |
|
|
71
|
+
|------|----------|
|
|
72
|
+
| [`verification-guide.md`](references/verification-guide.md) | Verification steps, design principles |
|
|
73
|
+
| [`scripts-guide.md`](references/scripts-guide.md) | Script options, validation checklist |
|
|
74
|
+
| [`ai-tool-compatibility.md`](references/ai-tool-compatibility.md) | 16-agent compatibility matrix |
|
|
75
|
+
| [`output-structure.md`](references/output-structure.md) | Root/scoped sections |
|
|
76
|
+
| [`git-hooks-setup.md`](references/git-hooks-setup.md) | Hook framework detection and setup |
|
|
77
|
+
| [`examples/`](references/examples/) | Complete examples |
|
|
78
|
+
| [`ai-contribution-guidelines.md`](references/ai-contribution-guidelines.md) | "3 Cs" framework for AI contributions (Comprehension, Context, Continuity) |
|
|
79
|
+
| [`directory-coverage.md`](references/directory-coverage.md) | Full coverage rationale for scoped AGENTS.md files |
|
|
80
|
+
|
|
81
|
+
## Templates
|
|
82
|
+
|
|
83
|
+
Root: `assets/root-thin.md` (default), `root-verbose.md`. Scoped: `assets/scoped/` -- `backend-go.md`, `backend-php.md`, `python-modern.md`, `typo3.md`, `symfony.md`, `skill-repo.md`, `cli.md`, `frontend-typescript.md`, `oro.md`.
|
|
84
|
+
|
|
85
|
+
## Supported Projects
|
|
86
|
+
|
|
87
|
+
Go, PHP (Composer/Laravel/Symfony/TYPO3/Oro), TypeScript (React/Next/Vue/Node), Python (pip/poetry/ruff/mypy), Skill repos, Hybrid (multi-stack with auto-scoping).
|
|
88
|
+
|
|
89
|
+
## See Also
|
|
90
|
+
|
|
91
|
+
- [`agent-harness-skill`](https://github.com/netresearch/agent-harness-skill) — broader agent-readiness harness (CI verification, enforcement). Invokes this skill when AGENTS.md is missing.
|
|
92
|
+
- [`skill-repo-skill`](https://github.com/netresearch/skill-repo-skill) — skill-repo structure (plugin.json, split licensing, release workflows).
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Example GitHub Actions workflow for validating AGENTS.md files
|
|
2
|
+
# Copy this to your repository's .github/workflows/ directory
|
|
3
|
+
#
|
|
4
|
+
# This workflow runs on:
|
|
5
|
+
# - Push/PR to any AGENTS.md file
|
|
6
|
+
# - Manual dispatch
|
|
7
|
+
#
|
|
8
|
+
# Customize the validation steps to match your project's setup.
|
|
9
|
+
|
|
10
|
+
name: Validate AGENTS.md
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
paths:
|
|
15
|
+
- 'AGENTS.md'
|
|
16
|
+
- '**/AGENTS.md'
|
|
17
|
+
pull_request:
|
|
18
|
+
paths:
|
|
19
|
+
- 'AGENTS.md'
|
|
20
|
+
- '**/AGENTS.md'
|
|
21
|
+
workflow_dispatch:
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
validate:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Check AGENTS.md exists
|
|
30
|
+
run: |
|
|
31
|
+
if [ ! -f "AGENTS.md" ]; then
|
|
32
|
+
echo "ERROR: AGENTS.md not found in repository root"
|
|
33
|
+
exit 1
|
|
34
|
+
fi
|
|
35
|
+
echo "AGENTS.md found"
|
|
36
|
+
|
|
37
|
+
- name: Validate structure
|
|
38
|
+
run: |
|
|
39
|
+
# Check for required sections (customize this list for your needs)
|
|
40
|
+
required_sections=(
|
|
41
|
+
"## Overview"
|
|
42
|
+
"## Commands"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
for section in "${required_sections[@]}"; do
|
|
46
|
+
if ! grep -qi "^$section" AGENTS.md; then
|
|
47
|
+
echo "WARNING: Missing section: $section"
|
|
48
|
+
fi
|
|
49
|
+
done
|
|
50
|
+
echo "Structure validation complete"
|
|
51
|
+
|
|
52
|
+
- name: Check for unresolved placeholders
|
|
53
|
+
run: |
|
|
54
|
+
# Fail if {{PLACEHOLDER}} patterns exist
|
|
55
|
+
if grep -E '\{\{[A-Z][A-Z0-9_]*\}\}' AGENTS.md; then
|
|
56
|
+
echo "ERROR: Found unresolved placeholders"
|
|
57
|
+
exit 1
|
|
58
|
+
fi
|
|
59
|
+
echo "No unresolved placeholders"
|
|
60
|
+
|
|
61
|
+
- name: Check for stale content
|
|
62
|
+
run: |
|
|
63
|
+
# Error if unresolved template placeholders exist
|
|
64
|
+
if grep -qE '\{\{[A-Z_]+\}\}' AGENTS.md; then
|
|
65
|
+
echo "ERROR: Found unresolved template placeholders - regenerate AGENTS.md"
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
# Check freshness (optional - customize days threshold)
|
|
70
|
+
if grep -q "Last updated:" AGENTS.md; then
|
|
71
|
+
last_updated=$(grep "Last updated:" AGENTS.md | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' | head -1)
|
|
72
|
+
if [ -n "$last_updated" ]; then
|
|
73
|
+
days_old=$(( ($(date +%s) - $(date -d "$last_updated" +%s)) / 86400 ))
|
|
74
|
+
if [ "$days_old" -gt 90 ]; then
|
|
75
|
+
echo "WARNING: AGENTS.md is $days_old days old - consider updating"
|
|
76
|
+
fi
|
|
77
|
+
fi
|
|
78
|
+
fi
|
|
79
|
+
echo "Freshness check complete"
|
|
80
|
+
|
|
81
|
+
# Optional: Verify documented commands work
|
|
82
|
+
# Uncomment and customize for your project
|
|
83
|
+
# - name: Verify commands
|
|
84
|
+
# run: |
|
|
85
|
+
# # Example: check that npm scripts exist
|
|
86
|
+
# if [ -f "package.json" ]; then
|
|
87
|
+
# # Extract commands from AGENTS.md and verify they exist
|
|
88
|
+
# echo "Verifying npm commands..."
|
|
89
|
+
# fi
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<!-- FOR AI AGENTS - Human readability is a side effect, not a goal -->
|
|
2
|
+
<!-- Managed by agent: keep sections and order; edit content, not structure -->
|
|
3
|
+
<!-- Last updated: {{TIMESTAMP}} | Last verified: {{VERIFIED_TIMESTAMP}} -->
|
|
4
|
+
|
|
5
|
+
# AGENTS.md
|
|
6
|
+
|
|
7
|
+
**Precedence:** the **closest `AGENTS.md`** to the files you're changing wins. Root holds global defaults only.
|
|
8
|
+
|
|
9
|
+
## Commands{{VERIFIED_STATUS}}
|
|
10
|
+
> Source: {{COMMAND_SOURCE}} — CI-sourced commands are most reliable
|
|
11
|
+
|
|
12
|
+
<!-- AGENTS-GENERATED:START commands -->
|
|
13
|
+
| Task | Command | ~Time |
|
|
14
|
+
|------|---------|-------|
|
|
15
|
+
| Typecheck | {{TYPECHECK_CMD}} | {{TYPECHECK_TIME}} |
|
|
16
|
+
| Lint | {{LINT_CMD}} | {{LINT_TIME}} |
|
|
17
|
+
| Format | {{FORMAT_CMD}} | {{FORMAT_TIME}} |
|
|
18
|
+
| Test (single) | {{TEST_SINGLE_CMD}} | ~2s |
|
|
19
|
+
| Test (all) | {{TEST_CMD}} | {{TEST_TIME}} |
|
|
20
|
+
| Build | {{BUILD_CMD}} | {{BUILD_TIME}} |
|
|
21
|
+
<!-- AGENTS-GENERATED:END commands -->
|
|
22
|
+
|
|
23
|
+
> If commands fail, verify against Makefile/package.json/composer.json or ask user to update.
|
|
24
|
+
|
|
25
|
+
## Response Style
|
|
26
|
+
- Answer first, elaborate only if needed. No sycophantic openers ("Great question!", "Absolutely!").
|
|
27
|
+
- For yes/no or status questions, lead with the answer.
|
|
28
|
+
- Skip preamble. Match response length to task complexity.
|
|
29
|
+
|
|
30
|
+
## Workflow
|
|
31
|
+
1. **Before coding**: Read nearest `AGENTS.md` + check Golden Samples for the area you're touching
|
|
32
|
+
2. **After each change**: Run the smallest relevant check (lint → typecheck → single test)
|
|
33
|
+
3. **Before committing**: Run full test suite if changes affect >2 files or touch shared code
|
|
34
|
+
4. **Before claiming done**: Run verification and **show output as evidence** — never say "try again", "should work now", "tested", "verified", or "all green" without pasted command output in the same turn
|
|
35
|
+
|
|
36
|
+
## File Map
|
|
37
|
+
<!-- AGENTS-GENERATED:START filemap -->
|
|
38
|
+
```
|
|
39
|
+
{{FILE_MAP}}
|
|
40
|
+
```
|
|
41
|
+
<!-- AGENTS-GENERATED:END filemap -->
|
|
42
|
+
|
|
43
|
+
## Golden Samples (follow these patterns)
|
|
44
|
+
<!-- AGENTS-GENERATED:START golden-samples -->
|
|
45
|
+
| For | Reference | Key patterns |
|
|
46
|
+
|-----|-----------|--------------|
|
|
47
|
+
{{GOLDEN_SAMPLES}}
|
|
48
|
+
<!-- AGENTS-GENERATED:END golden-samples -->
|
|
49
|
+
|
|
50
|
+
## Utilities (check before creating new)
|
|
51
|
+
<!-- AGENTS-GENERATED:START utilities -->
|
|
52
|
+
| Need | Use | Location |
|
|
53
|
+
|------|-----|----------|
|
|
54
|
+
{{UTILITIES_LIST}}
|
|
55
|
+
<!-- AGENTS-GENERATED:END utilities -->
|
|
56
|
+
|
|
57
|
+
## Heuristics (quick decisions)
|
|
58
|
+
<!-- AGENTS-GENERATED:START heuristics -->
|
|
59
|
+
| When | Do |
|
|
60
|
+
|------|-----|
|
|
61
|
+
{{HEURISTICS}}
|
|
62
|
+
| Adding dependency | Ask first - we minimize deps |
|
|
63
|
+
| Unsure about pattern | Check Golden Samples above |
|
|
64
|
+
<!-- AGENTS-GENERATED:END heuristics -->
|
|
65
|
+
|
|
66
|
+
## Repository Settings
|
|
67
|
+
<!-- AGENTS-GENERATED:START repo-settings -->
|
|
68
|
+
{{REPO_SETTINGS}}
|
|
69
|
+
<!-- AGENTS-GENERATED:END repo-settings -->
|
|
70
|
+
|
|
71
|
+
<!-- AGENTS-GENERATED:START ci-rules -->
|
|
72
|
+
{{CI_RULES_SECTION}}
|
|
73
|
+
<!-- AGENTS-GENERATED:END ci-rules -->
|
|
74
|
+
|
|
75
|
+
## Key Decisions
|
|
76
|
+
<!-- AGENTS-GENERATED:START key-decisions -->
|
|
77
|
+
{{KEY_DECISIONS}}
|
|
78
|
+
<!-- AGENTS-GENERATED:END key-decisions -->
|
|
79
|
+
|
|
80
|
+
## Boundaries
|
|
81
|
+
|
|
82
|
+
### Always Do
|
|
83
|
+
- Run pre-commit checks before committing
|
|
84
|
+
- Add tests for new code paths
|
|
85
|
+
- Use conventional commit format: `type(scope): subject`
|
|
86
|
+
- Use **atomic commits** (one logical change per commit); preserve signatures, keep bisection useful
|
|
87
|
+
- **Show test output as evidence before claiming work is complete** — never say "try again", "should work now", "tested", "verified", or "all green" without pasted command output
|
|
88
|
+
- Before any edit, verify `pwd` resolves inside the intended repo worktree — not `.bare/`, not `~/.claude/skills/…`, not `~/.claude/plugins/cache/…` (those are read-only caches that get clobbered on update)
|
|
89
|
+
- For upstream dependency fixes: run **full** test suite, not just affected tests
|
|
90
|
+
- Force-push only with `--force-with-lease`
|
|
91
|
+
{{LANGUAGE_CONVENTIONS}}
|
|
92
|
+
|
|
93
|
+
### Ask First
|
|
94
|
+
- Adding new dependencies
|
|
95
|
+
- Modifying CI/CD configuration
|
|
96
|
+
- Changing public API signatures
|
|
97
|
+
- Running full e2e test suites
|
|
98
|
+
- Repo-wide refactoring or rewrites
|
|
99
|
+
- Operations that touch >3 repos (produce a dry-run plan first)
|
|
100
|
+
|
|
101
|
+
### Never Do
|
|
102
|
+
- Commit secrets, credentials, or sensitive data
|
|
103
|
+
- Modify vendor/, node_modules/, or generated files
|
|
104
|
+
- Push directly to main/master branch — open a PR
|
|
105
|
+
- Merge a PR before all review threads are resolved
|
|
106
|
+
- Squash commits during merge or rebase unless the user explicitly asked
|
|
107
|
+
- Edit installed skill/plugin cache paths (`~/.claude/skills/`, `~/.claude/plugins/cache/`, `**/.bare/**`) — always the source worktree
|
|
108
|
+
- Reply to review comments with bare "Addressed" or "Fixed" — cite the resolving commit SHA
|
|
109
|
+
- Delete migration files or schema changes
|
|
110
|
+
- Use `secrets: inherit` in reusable GitHub Actions workflows (pass secrets explicitly)
|
|
111
|
+
{{LANGUAGE_SPECIFIC_NEVER}}
|
|
112
|
+
|
|
113
|
+
## Contributing (for AI agents)
|
|
114
|
+
- **Comprehension**: Understand the problem before submitting code. Read the linked issue, understand *why* the change is needed, not just *what* to change.
|
|
115
|
+
- **Context**: Every PR must explain the trade-offs considered and link to the issue it addresses. Disclose AI assistance if the project requires it.
|
|
116
|
+
- **Continuity**: Respond to review feedback. Drive-by PRs without follow-up will be closed.
|
|
117
|
+
|
|
118
|
+
<!-- AGENTS-GENERATED:START module-boundaries -->
|
|
119
|
+
{{MODULE_BOUNDARIES}}
|
|
120
|
+
<!-- AGENTS-GENERATED:END module-boundaries -->
|
|
121
|
+
|
|
122
|
+
## Codebase State
|
|
123
|
+
<!-- AGENTS-GENERATED:START codebase-state -->
|
|
124
|
+
{{CODEBASE_STATE}}
|
|
125
|
+
<!-- AGENTS-GENERATED:END codebase-state -->
|
|
126
|
+
|
|
127
|
+
## Terminology
|
|
128
|
+
| Term | Means |
|
|
129
|
+
|------|-------|
|
|
130
|
+
{{TERMINOLOGY}}
|
|
131
|
+
|
|
132
|
+
## Scoped AGENTS.md (MUST read when working in these directories)
|
|
133
|
+
<!-- AGENTS-GENERATED:START scope-index -->
|
|
134
|
+
{{SCOPE_INDEX}}
|
|
135
|
+
<!-- AGENTS-GENERATED:END scope-index -->
|
|
136
|
+
|
|
137
|
+
> **Agents**: When you read or edit files in a listed directory, you **must** load its AGENTS.md first. It contains directory-specific conventions that override this root file.
|
|
138
|
+
|
|
139
|
+
## When instructions conflict
|
|
140
|
+
The nearest `AGENTS.md` wins. Explicit user prompts override files.
|
|
141
|
+
{{LANGUAGE_SPECIFIC_CONFLICT_RESOLUTION}}
|