@hivehub/rulebook 1.2.0
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/LICENSE +191 -0
- package/README.md +539 -0
- package/dist/agents/claude-code.d.ts +69 -0
- package/dist/agents/claude-code.d.ts.map +1 -0
- package/dist/agents/claude-code.js +180 -0
- package/dist/agents/claude-code.js.map +1 -0
- package/dist/agents/cursor-agent.d.ts +184 -0
- package/dist/agents/cursor-agent.d.ts.map +1 -0
- package/dist/agents/cursor-agent.js +299 -0
- package/dist/agents/cursor-agent.js.map +1 -0
- package/dist/agents/gemini-cli.d.ts +69 -0
- package/dist/agents/gemini-cli.d.ts.map +1 -0
- package/dist/agents/gemini-cli.js +180 -0
- package/dist/agents/gemini-cli.js.map +1 -0
- package/dist/cli/commands.d.ts +57 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +1370 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/docs-prompts.d.ts +3 -0
- package/dist/cli/docs-prompts.d.ts.map +1 -0
- package/dist/cli/docs-prompts.js +45 -0
- package/dist/cli/docs-prompts.js.map +1 -0
- package/dist/cli/prompts.d.ts +6 -0
- package/dist/cli/prompts.d.ts.map +1 -0
- package/dist/cli/prompts.js +376 -0
- package/dist/cli/prompts.js.map +1 -0
- package/dist/core/agent-manager.d.ts +89 -0
- package/dist/core/agent-manager.d.ts.map +1 -0
- package/dist/core/agent-manager.js +546 -0
- package/dist/core/agent-manager.js.map +1 -0
- package/dist/core/auto-fixer.d.ts +14 -0
- package/dist/core/auto-fixer.d.ts.map +1 -0
- package/dist/core/auto-fixer.js +207 -0
- package/dist/core/auto-fixer.js.map +1 -0
- package/dist/core/changelog-generator.d.ts +44 -0
- package/dist/core/changelog-generator.d.ts.map +1 -0
- package/dist/core/changelog-generator.js +222 -0
- package/dist/core/changelog-generator.js.map +1 -0
- package/dist/core/cli-bridge.d.ts +113 -0
- package/dist/core/cli-bridge.d.ts.map +1 -0
- package/dist/core/cli-bridge.js +1094 -0
- package/dist/core/cli-bridge.js.map +1 -0
- package/dist/core/config-manager.d.ts +65 -0
- package/dist/core/config-manager.d.ts.map +1 -0
- package/dist/core/config-manager.js +266 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/coverage-checker.d.ts +14 -0
- package/dist/core/coverage-checker.d.ts.map +1 -0
- package/dist/core/coverage-checker.js +176 -0
- package/dist/core/coverage-checker.js.map +1 -0
- package/dist/core/custom-templates.d.ts +27 -0
- package/dist/core/custom-templates.d.ts.map +1 -0
- package/dist/core/custom-templates.js +122 -0
- package/dist/core/custom-templates.js.map +1 -0
- package/dist/core/dependency-checker.d.ts +21 -0
- package/dist/core/dependency-checker.d.ts.map +1 -0
- package/dist/core/dependency-checker.js +247 -0
- package/dist/core/dependency-checker.js.map +1 -0
- package/dist/core/detector.d.ts +3 -0
- package/dist/core/detector.d.ts.map +1 -0
- package/dist/core/detector.js +1443 -0
- package/dist/core/detector.js.map +1 -0
- package/dist/core/docs-generator.d.ts +9 -0
- package/dist/core/docs-generator.d.ts.map +1 -0
- package/dist/core/docs-generator.js +531 -0
- package/dist/core/docs-generator.js.map +1 -0
- package/dist/core/generator.d.ts +16 -0
- package/dist/core/generator.d.ts.map +1 -0
- package/dist/core/generator.js +561 -0
- package/dist/core/generator.js.map +1 -0
- package/dist/core/gitignore-generator.d.ts +13 -0
- package/dist/core/gitignore-generator.d.ts.map +1 -0
- package/dist/core/gitignore-generator.js +307 -0
- package/dist/core/gitignore-generator.js.map +1 -0
- package/dist/core/health-scorer.d.ts +22 -0
- package/dist/core/health-scorer.d.ts.map +1 -0
- package/dist/core/health-scorer.js +395 -0
- package/dist/core/health-scorer.js.map +1 -0
- package/dist/core/logger.d.ts +116 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +289 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/merger.d.ts +6 -0
- package/dist/core/merger.d.ts.map +1 -0
- package/dist/core/merger.js +131 -0
- package/dist/core/merger.js.map +1 -0
- package/dist/core/migrator.d.ts +19 -0
- package/dist/core/migrator.d.ts.map +1 -0
- package/dist/core/migrator.js +102 -0
- package/dist/core/migrator.js.map +1 -0
- package/dist/core/minimal-scaffolder.d.ts +8 -0
- package/dist/core/minimal-scaffolder.d.ts.map +1 -0
- package/dist/core/minimal-scaffolder.js +51 -0
- package/dist/core/minimal-scaffolder.js.map +1 -0
- package/dist/core/modern-console-new.d.ts +81 -0
- package/dist/core/modern-console-new.d.ts.map +1 -0
- package/dist/core/modern-console-new.js +340 -0
- package/dist/core/modern-console-new.js.map +1 -0
- package/dist/core/modern-console.d.ts +99 -0
- package/dist/core/modern-console.d.ts.map +1 -0
- package/dist/core/modern-console.js +568 -0
- package/dist/core/modern-console.js.map +1 -0
- package/dist/core/openspec-manager.d.ts +133 -0
- package/dist/core/openspec-manager.d.ts.map +1 -0
- package/dist/core/openspec-manager.js +605 -0
- package/dist/core/openspec-manager.js.map +1 -0
- package/dist/core/openspec-migrator.d.ts +27 -0
- package/dist/core/openspec-migrator.d.ts.map +1 -0
- package/dist/core/openspec-migrator.js +255 -0
- package/dist/core/openspec-migrator.js.map +1 -0
- package/dist/core/task-manager.d.ts +65 -0
- package/dist/core/task-manager.d.ts.map +1 -0
- package/dist/core/task-manager.js +318 -0
- package/dist/core/task-manager.js.map +1 -0
- package/dist/core/test-task-manager.d.ts +49 -0
- package/dist/core/test-task-manager.d.ts.map +1 -0
- package/dist/core/test-task-manager.js +121 -0
- package/dist/core/test-task-manager.js.map +1 -0
- package/dist/core/validator.d.ts +21 -0
- package/dist/core/validator.d.ts.map +1 -0
- package/dist/core/validator.js +177 -0
- package/dist/core/validator.js.map +1 -0
- package/dist/core/version-bumper.d.ts +19 -0
- package/dist/core/version-bumper.d.ts.map +1 -0
- package/dist/core/version-bumper.js +180 -0
- package/dist/core/version-bumper.js.map +1 -0
- package/dist/core/watcher.d.ts +9 -0
- package/dist/core/watcher.d.ts.map +1 -0
- package/dist/core/watcher.js +22 -0
- package/dist/core/watcher.js.map +1 -0
- package/dist/core/workflow-generator.d.ts +10 -0
- package/dist/core/workflow-generator.d.ts.map +1 -0
- package/dist/core/workflow-generator.js +279 -0
- package/dist/core/workflow-generator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/handlers/archive-task.d.ts +17 -0
- package/dist/mcp/handlers/archive-task.d.ts.map +1 -0
- package/dist/mcp/handlers/archive-task.js +36 -0
- package/dist/mcp/handlers/archive-task.js.map +1 -0
- package/dist/mcp/handlers/create-task.d.ts +17 -0
- package/dist/mcp/handlers/create-task.d.ts.map +1 -0
- package/dist/mcp/handlers/create-task.js +56 -0
- package/dist/mcp/handlers/create-task.js.map +1 -0
- package/dist/mcp/handlers/list-tasks.d.ts +22 -0
- package/dist/mcp/handlers/list-tasks.d.ts.map +1 -0
- package/dist/mcp/handlers/list-tasks.js +42 -0
- package/dist/mcp/handlers/list-tasks.js.map +1 -0
- package/dist/mcp/handlers/show-task.d.ts +25 -0
- package/dist/mcp/handlers/show-task.d.ts.map +1 -0
- package/dist/mcp/handlers/show-task.js +43 -0
- package/dist/mcp/handlers/show-task.js.map +1 -0
- package/dist/mcp/handlers/update-task.d.ts +17 -0
- package/dist/mcp/handlers/update-task.d.ts.map +1 -0
- package/dist/mcp/handlers/update-task.js +35 -0
- package/dist/mcp/handlers/update-task.js.map +1 -0
- package/dist/mcp/handlers/validate-task.d.ts +15 -0
- package/dist/mcp/handlers/validate-task.d.ts.map +1 -0
- package/dist/mcp/handlers/validate-task.js +27 -0
- package/dist/mcp/handlers/validate-task.js.map +1 -0
- package/dist/mcp/rulebook-config.d.ts +22 -0
- package/dist/mcp/rulebook-config.d.ts.map +1 -0
- package/dist/mcp/rulebook-config.js +65 -0
- package/dist/mcp/rulebook-config.js.map +1 -0
- package/dist/mcp/rulebook-server.d.ts +4 -0
- package/dist/mcp/rulebook-server.d.ts.map +1 -0
- package/dist/mcp/rulebook-server.js +246 -0
- package/dist/mcp/rulebook-server.js.map +1 -0
- package/dist/types.d.ts +190 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/file-system.d.ts +9 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +51 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/git-hooks.d.ts +8 -0
- package/dist/utils/git-hooks.d.ts.map +1 -0
- package/dist/utils/git-hooks.js +440 -0
- package/dist/utils/git-hooks.js.map +1 -0
- package/dist/utils/rulesignore.d.ts +9 -0
- package/dist/utils/rulesignore.d.ts.map +1 -0
- package/dist/utils/rulesignore.js +42 -0
- package/dist/utils/rulesignore.js.map +1 -0
- package/package.json +106 -0
- package/templates/cli/AIDER.md +49 -0
- package/templates/cli/AMAZON_Q.md +25 -0
- package/templates/cli/AUGGIE.md +32 -0
- package/templates/cli/CLAUDE.md +32 -0
- package/templates/cli/CLAUDE_CODE.md +35 -0
- package/templates/cli/CLINE.md +32 -0
- package/templates/cli/CODEBUDDY.md +20 -0
- package/templates/cli/CODEIUM.md +20 -0
- package/templates/cli/CODEX.md +21 -0
- package/templates/cli/CONTINUE.md +34 -0
- package/templates/cli/CURSOR_CLI.md +28 -0
- package/templates/cli/FACTORY.md +18 -0
- package/templates/cli/GEMINI.md +35 -0
- package/templates/cli/KILOCODE.md +18 -0
- package/templates/cli/OPENCODE.md +18 -0
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -0
- package/templates/commands/rulebook-task-apply.md +67 -0
- package/templates/commands/rulebook-task-archive.md +70 -0
- package/templates/commands/rulebook-task-create.md +93 -0
- package/templates/commands/rulebook-task-list.md +42 -0
- package/templates/commands/rulebook-task-show.md +52 -0
- package/templates/commands/rulebook-task-validate.md +53 -0
- package/templates/core/AGENT_AUTOMATION.md +184 -0
- package/templates/core/DAG.md +304 -0
- package/templates/core/DOCUMENTATION_RULES.md +37 -0
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -0
- package/templates/core/RULEBOOK.md +1874 -0
- package/templates/frameworks/ANGULAR.md +36 -0
- package/templates/frameworks/DJANGO.md +83 -0
- package/templates/frameworks/ELECTRON.md +147 -0
- package/templates/frameworks/FLASK.md +38 -0
- package/templates/frameworks/FLUTTER.md +55 -0
- package/templates/frameworks/JQUERY.md +32 -0
- package/templates/frameworks/LARAVEL.md +38 -0
- package/templates/frameworks/NESTJS.md +43 -0
- package/templates/frameworks/NEXTJS.md +127 -0
- package/templates/frameworks/NUXT.md +40 -0
- package/templates/frameworks/RAILS.md +66 -0
- package/templates/frameworks/REACT.md +38 -0
- package/templates/frameworks/REACT_NATIVE.md +47 -0
- package/templates/frameworks/SPRING.md +39 -0
- package/templates/frameworks/SYMFONY.md +36 -0
- package/templates/frameworks/VUE.md +36 -0
- package/templates/frameworks/ZEND.md +35 -0
- package/templates/git/CI_CD_PATTERNS.md +661 -0
- package/templates/git/GITHUB_ACTIONS.md +728 -0
- package/templates/git/GITLAB_CI.md +730 -0
- package/templates/git/GIT_WORKFLOW.md +1157 -0
- package/templates/git/SECRETS_MANAGEMENT.md +585 -0
- package/templates/hooks/COMMIT_MSG.md +530 -0
- package/templates/hooks/POST_CHECKOUT.md +546 -0
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -0
- package/templates/hooks/PRE_COMMIT.md +414 -0
- package/templates/hooks/PRE_PUSH.md +601 -0
- package/templates/hooks/csharp-pre-commit.sh +23 -0
- package/templates/hooks/csharp-pre-push.sh +23 -0
- package/templates/hooks/dart-pre-commit.sh +30 -0
- package/templates/hooks/dart-pre-push.sh +25 -0
- package/templates/hooks/elixir-pre-commit.sh +32 -0
- package/templates/hooks/elixir-pre-push.sh +31 -0
- package/templates/hooks/erlang-pre-commit.sh +30 -0
- package/templates/hooks/erlang-pre-push.sh +37 -0
- package/templates/hooks/go-pre-commit.sh +40 -0
- package/templates/hooks/go-pre-push.sh +31 -0
- package/templates/hooks/haskell-pre-commit.sh +41 -0
- package/templates/hooks/haskell-pre-push.sh +37 -0
- package/templates/hooks/java-pre-commit.sh +34 -0
- package/templates/hooks/java-pre-push.sh +24 -0
- package/templates/hooks/kotlin-pre-commit.sh +32 -0
- package/templates/hooks/kotlin-pre-push.sh +16 -0
- package/templates/hooks/php-pre-commit.sh +36 -0
- package/templates/hooks/php-pre-push.sh +26 -0
- package/templates/hooks/python-pre-commit.sh +51 -0
- package/templates/hooks/python-pre-push.sh +25 -0
- package/templates/hooks/ruby-pre-commit.sh +33 -0
- package/templates/hooks/ruby-pre-push.sh +32 -0
- package/templates/hooks/rust-pre-commit.sh +30 -0
- package/templates/hooks/rust-pre-push.sh +30 -0
- package/templates/hooks/scala-pre-commit.sh +32 -0
- package/templates/hooks/scala-pre-push.sh +24 -0
- package/templates/hooks/swift-pre-commit.sh +25 -0
- package/templates/hooks/swift-pre-push.sh +23 -0
- package/templates/hooks/typescript-pre-commit.sh +37 -0
- package/templates/hooks/typescript-pre-push.sh +36 -0
- package/templates/ides/COPILOT.md +37 -0
- package/templates/ides/CURSOR.md +43 -0
- package/templates/ides/JETBRAINS_AI.md +35 -0
- package/templates/ides/REPLIT.md +36 -0
- package/templates/ides/TABNINE.md +29 -0
- package/templates/ides/VSCODE.md +40 -0
- package/templates/ides/WINDSURF.md +36 -0
- package/templates/ides/ZED.md +32 -0
- package/templates/languages/ADA.md +58 -0
- package/templates/languages/C.md +333 -0
- package/templates/languages/CPP.md +743 -0
- package/templates/languages/CSHARP.md +417 -0
- package/templates/languages/DART.md +332 -0
- package/templates/languages/ELIXIR.md +454 -0
- package/templates/languages/ERLANG.md +361 -0
- package/templates/languages/GO.md +645 -0
- package/templates/languages/HASKELL.md +177 -0
- package/templates/languages/JAVA.md +607 -0
- package/templates/languages/JAVASCRIPT.md +631 -0
- package/templates/languages/JULIA.md +97 -0
- package/templates/languages/KOTLIN.md +511 -0
- package/templates/languages/LISP.md +100 -0
- package/templates/languages/LUA.md +74 -0
- package/templates/languages/OBJECTIVEC.md +90 -0
- package/templates/languages/PHP.md +416 -0
- package/templates/languages/PYTHON.md +682 -0
- package/templates/languages/R.md +350 -0
- package/templates/languages/RUBY.md +421 -0
- package/templates/languages/RUST.md +477 -0
- package/templates/languages/SAS.md +73 -0
- package/templates/languages/SCALA.md +348 -0
- package/templates/languages/SOLIDITY.md +580 -0
- package/templates/languages/SQL.md +137 -0
- package/templates/languages/SWIFT.md +466 -0
- package/templates/languages/TYPESCRIPT.md +591 -0
- package/templates/languages/ZIG.md +265 -0
- package/templates/modules/ATLASSIAN.md +255 -0
- package/templates/modules/CONTEXT7.md +54 -0
- package/templates/modules/FIGMA.md +267 -0
- package/templates/modules/GITHUB_MCP.md +64 -0
- package/templates/modules/GRAFANA.md +328 -0
- package/templates/modules/NOTION.md +247 -0
- package/templates/modules/PLAYWRIGHT.md +90 -0
- package/templates/modules/RULEBOOK_MCP.md +156 -0
- package/templates/modules/SERENA.md +337 -0
- package/templates/modules/SUPABASE.md +223 -0
- package/templates/modules/SYNAP.md +69 -0
- package/templates/modules/VECTORIZER.md +63 -0
- package/templates/services/AZURE_BLOB.md +184 -0
- package/templates/services/CASSANDRA.md +239 -0
- package/templates/services/DYNAMODB.md +308 -0
- package/templates/services/ELASTICSEARCH.md +347 -0
- package/templates/services/GCS.md +178 -0
- package/templates/services/INFLUXDB.md +265 -0
- package/templates/services/KAFKA.md +341 -0
- package/templates/services/MARIADB.md +183 -0
- package/templates/services/MEMCACHED.md +242 -0
- package/templates/services/MINIO.md +201 -0
- package/templates/services/MONGODB.md +268 -0
- package/templates/services/MYSQL.md +358 -0
- package/templates/services/NEO4J.md +247 -0
- package/templates/services/ORACLE.md +290 -0
- package/templates/services/POSTGRESQL.md +326 -0
- package/templates/services/RABBITMQ.md +286 -0
- package/templates/services/REDIS.md +292 -0
- package/templates/services/S3.md +298 -0
- package/templates/services/SQLITE.md +294 -0
- package/templates/services/SQLSERVER.md +294 -0
- package/templates/workflows/codespell.yml +31 -0
- package/templates/workflows/cpp-lint.yml +47 -0
- package/templates/workflows/cpp-publish.yml +119 -0
- package/templates/workflows/cpp-test.yml +77 -0
- package/templates/workflows/dotnet-lint.yml +29 -0
- package/templates/workflows/dotnet-publish.yml +40 -0
- package/templates/workflows/dotnet-test.yml +41 -0
- package/templates/workflows/elixir-lint.yml +45 -0
- package/templates/workflows/elixir-publish.yml +49 -0
- package/templates/workflows/elixir-test.yml +54 -0
- package/templates/workflows/erlang-lint.yml +47 -0
- package/templates/workflows/erlang-test.yml +62 -0
- package/templates/workflows/go-lint.yml +39 -0
- package/templates/workflows/go-publish.yml +95 -0
- package/templates/workflows/go-test.yml +59 -0
- package/templates/workflows/java-lint.yml +60 -0
- package/templates/workflows/java-publish.yml +120 -0
- package/templates/workflows/java-test.yml +85 -0
- package/templates/workflows/kotlin-lint.yml +34 -0
- package/templates/workflows/kotlin-publish.yml +56 -0
- package/templates/workflows/kotlin-test.yml +48 -0
- package/templates/workflows/php-lint.yml +39 -0
- package/templates/workflows/php-publish.yml +50 -0
- package/templates/workflows/php-test.yml +54 -0
- package/templates/workflows/python-lint.yml +47 -0
- package/templates/workflows/python-publish.yml +91 -0
- package/templates/workflows/python-test.yml +59 -0
- package/templates/workflows/rust-lint.yml +54 -0
- package/templates/workflows/rust-publish.yml +66 -0
- package/templates/workflows/rust-test.yml +75 -0
- package/templates/workflows/solidity-lint.yml +41 -0
- package/templates/workflows/solidity-test.yml +47 -0
- package/templates/workflows/swift-lint.yml +32 -0
- package/templates/workflows/swift-publish.yml +58 -0
- package/templates/workflows/swift-test.yml +44 -0
- package/templates/workflows/typescript-lint.yml +61 -0
- package/templates/workflows/typescript-publish.yml +60 -0
- package/templates/workflows/typescript-test.yml +73 -0
- package/templates/workflows/zig-lint.yml +27 -0
- package/templates/workflows/zig-test.yml +40 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
<!-- NOTION:START -->
|
|
2
|
+
# Notion MCP Instructions
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Use MCP Notion for documentation, task tracking, and knowledge management.
|
|
5
|
+
|
|
6
|
+
## Core Operations
|
|
7
|
+
|
|
8
|
+
### Database Queries
|
|
9
|
+
```typescript
|
|
10
|
+
// Query database
|
|
11
|
+
notion.databases.query({
|
|
12
|
+
database_id: 'database-id',
|
|
13
|
+
filter: {
|
|
14
|
+
property: 'Status',
|
|
15
|
+
select: { equals: 'In Progress' }
|
|
16
|
+
},
|
|
17
|
+
sorts: [{ property: 'Created', direction: 'descending' }]
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
// Get database
|
|
21
|
+
notion.databases.retrieve({ database_id: 'database-id' })
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Page Operations
|
|
25
|
+
```typescript
|
|
26
|
+
// Create page
|
|
27
|
+
notion.pages.create({
|
|
28
|
+
parent: { database_id: 'database-id' },
|
|
29
|
+
properties: {
|
|
30
|
+
'Name': { title: [{ text: { content: 'New Task' } }] },
|
|
31
|
+
'Status': { select: { name: 'To Do' } },
|
|
32
|
+
'Priority': { select: { name: 'High' } }
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
// Update page
|
|
37
|
+
notion.pages.update({
|
|
38
|
+
page_id: 'page-id',
|
|
39
|
+
properties: {
|
|
40
|
+
'Status': { select: { name: 'Done' } }
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
// Get page
|
|
45
|
+
notion.pages.retrieve({ page_id: 'page-id' })
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Block Operations
|
|
49
|
+
```typescript
|
|
50
|
+
// Get blocks
|
|
51
|
+
notion.blocks.children.list({ block_id: 'page-id' })
|
|
52
|
+
|
|
53
|
+
// Append blocks
|
|
54
|
+
notion.blocks.children.append({
|
|
55
|
+
block_id: 'page-id',
|
|
56
|
+
children: [
|
|
57
|
+
{
|
|
58
|
+
object: 'block',
|
|
59
|
+
type: 'heading_2',
|
|
60
|
+
heading_2: {
|
|
61
|
+
rich_text: [{ type: 'text', text: { content: 'Section Title' } }]
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
object: 'block',
|
|
66
|
+
type: 'paragraph',
|
|
67
|
+
paragraph: {
|
|
68
|
+
rich_text: [{ type: 'text', text: { content: 'Content here' } }]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
})
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Search
|
|
76
|
+
```typescript
|
|
77
|
+
// Search all content
|
|
78
|
+
notion.search({
|
|
79
|
+
query: 'search term',
|
|
80
|
+
filter: { property: 'object', value: 'page' },
|
|
81
|
+
sort: { direction: 'descending', timestamp: 'last_edited_time' }
|
|
82
|
+
})
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Common Patterns
|
|
86
|
+
|
|
87
|
+
### Task Management
|
|
88
|
+
```typescript
|
|
89
|
+
// Create task
|
|
90
|
+
await notion.pages.create({
|
|
91
|
+
parent: { database_id: tasksDbId },
|
|
92
|
+
properties: {
|
|
93
|
+
'Task': { title: [{ text: { content: 'Implement feature X' } }] },
|
|
94
|
+
'Status': { select: { name: 'To Do' } },
|
|
95
|
+
'Assignee': { people: [{ id: userId }] },
|
|
96
|
+
'Due Date': { date: { start: '2024-12-31' } }
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
// Update task status
|
|
101
|
+
await notion.pages.update({
|
|
102
|
+
page_id: taskId,
|
|
103
|
+
properties: {
|
|
104
|
+
'Status': { select: { name: 'In Progress' } },
|
|
105
|
+
'Started': { date: { start: new Date().toISOString() } }
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
// Complete task
|
|
110
|
+
await notion.pages.update({
|
|
111
|
+
page_id: taskId,
|
|
112
|
+
properties: {
|
|
113
|
+
'Status': { select: { name: 'Done' } },
|
|
114
|
+
'Completed': { date: { start: new Date().toISOString() } }
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Documentation Generation
|
|
120
|
+
```typescript
|
|
121
|
+
// Create documentation page
|
|
122
|
+
const page = await notion.pages.create({
|
|
123
|
+
parent: { database_id: docsDbId },
|
|
124
|
+
properties: {
|
|
125
|
+
'Title': { title: [{ text: { content: 'API Documentation' } }] },
|
|
126
|
+
'Category': { select: { name: 'Technical' } }
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
// Add content blocks
|
|
131
|
+
await notion.blocks.children.append({
|
|
132
|
+
block_id: page.id,
|
|
133
|
+
children: [
|
|
134
|
+
{ type: 'heading_1', heading_1: { rich_text: [{ text: { content: 'API Reference' } }] } },
|
|
135
|
+
{ type: 'paragraph', paragraph: { rich_text: [{ text: { content: 'Endpoints overview...' } }] } },
|
|
136
|
+
{ type: 'code', code: {
|
|
137
|
+
language: 'typescript',
|
|
138
|
+
rich_text: [{ text: { content: 'const api = new API()' } }]
|
|
139
|
+
}}
|
|
140
|
+
]
|
|
141
|
+
})
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Meeting Notes
|
|
145
|
+
```typescript
|
|
146
|
+
// Create meeting notes
|
|
147
|
+
await notion.pages.create({
|
|
148
|
+
parent: { database_id: meetingsDbId },
|
|
149
|
+
properties: {
|
|
150
|
+
'Title': { title: [{ text: { content: 'Sprint Planning - Jan 2024' } }] },
|
|
151
|
+
'Date': { date: { start: '2024-01-15' } },
|
|
152
|
+
'Attendees': { people: attendeeIds }
|
|
153
|
+
}
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
// Add agenda and notes
|
|
157
|
+
await notion.blocks.children.append({
|
|
158
|
+
block_id: pageId,
|
|
159
|
+
children: [
|
|
160
|
+
{ type: 'heading_2', heading_2: { rich_text: [{ text: { content: 'Agenda' } }] } },
|
|
161
|
+
{ type: 'bulleted_list_item', bulleted_list_item: { rich_text: [{ text: { content: 'Review last sprint' } }] } },
|
|
162
|
+
{ type: 'bulleted_list_item', bulleted_list_item: { rich_text: [{ text: { content: 'Plan next sprint' } }] } },
|
|
163
|
+
{ type: 'heading_2', heading_2: { rich_text: [{ text: { content: 'Action Items' } }] } }
|
|
164
|
+
]
|
|
165
|
+
})
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Best Practices
|
|
169
|
+
|
|
170
|
+
✅ **DO:**
|
|
171
|
+
- Use databases for structured data
|
|
172
|
+
- Cache database schemas
|
|
173
|
+
- Batch operations when possible
|
|
174
|
+
- Handle rate limits (3 requests/second)
|
|
175
|
+
- Use rich text for formatting
|
|
176
|
+
- Archive instead of delete
|
|
177
|
+
|
|
178
|
+
❌ **DON'T:**
|
|
179
|
+
- Make excessive API calls
|
|
180
|
+
- Ignore rate limiting
|
|
181
|
+
- Store large binary files
|
|
182
|
+
- Skip error handling
|
|
183
|
+
- Hardcode database IDs
|
|
184
|
+
|
|
185
|
+
## Configuration
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"mcpServers": {
|
|
190
|
+
"notion": {
|
|
191
|
+
"command": "npx",
|
|
192
|
+
"args": ["-y", "@modelcontextprotocol/server-notion"],
|
|
193
|
+
"env": {
|
|
194
|
+
"NOTION_API_KEY": "secret_xxx",
|
|
195
|
+
"NOTION_VERSION": "2022-06-28"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Setup:**
|
|
203
|
+
1. Create integration at https://www.notion.so/my-integrations
|
|
204
|
+
2. Copy internal integration token
|
|
205
|
+
3. Share databases/pages with integration
|
|
206
|
+
4. Use token as `NOTION_API_KEY`
|
|
207
|
+
|
|
208
|
+
## Integration Patterns
|
|
209
|
+
|
|
210
|
+
### Sync Tasks from Code
|
|
211
|
+
```typescript
|
|
212
|
+
// Sync OpenSpec tasks to Notion
|
|
213
|
+
const tasks = parseOpenSpecTasks('openspec/changes/my-feature/tasks.md')
|
|
214
|
+
|
|
215
|
+
for (const task of tasks) {
|
|
216
|
+
await notion.pages.create({
|
|
217
|
+
parent: { database_id: tasksDbId },
|
|
218
|
+
properties: {
|
|
219
|
+
'Task': { title: [{ text: { content: task.title } }] },
|
|
220
|
+
'Status': { select: { name: task.completed ? 'Done' : 'To Do' } },
|
|
221
|
+
'Source': { select: { name: 'OpenSpec' } }
|
|
222
|
+
}
|
|
223
|
+
})
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Generate Changelog
|
|
228
|
+
```typescript
|
|
229
|
+
// Query completed tasks
|
|
230
|
+
const completed = await notion.databases.query({
|
|
231
|
+
database_id: tasksDbId,
|
|
232
|
+
filter: {
|
|
233
|
+
and: [
|
|
234
|
+
{ property: 'Status', select: { equals: 'Done' } },
|
|
235
|
+
{ property: 'Completed', date: { after: '2024-01-01' } }
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
})
|
|
239
|
+
|
|
240
|
+
// Generate CHANGELOG.md entries
|
|
241
|
+
const entries = completed.results.map(task =>
|
|
242
|
+
`- ${task.properties.Task.title[0].plain_text}`
|
|
243
|
+
)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
<!-- NOTION:END -->
|
|
247
|
+
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<!-- PLAYWRIGHT:START -->
|
|
2
|
+
# Playwright MCP Instructions
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Use MCP Playwright for automated browser testing and web automation.
|
|
5
|
+
|
|
6
|
+
## Core Operations
|
|
7
|
+
|
|
8
|
+
### Navigation & Screenshots
|
|
9
|
+
```typescript
|
|
10
|
+
await playwright.navigate({ url: "https://example.com" });
|
|
11
|
+
await playwright.takeScreenshot({ fullPage: true, filename: "page.png" });
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Interaction
|
|
15
|
+
```typescript
|
|
16
|
+
// Click
|
|
17
|
+
await playwright.click({ element: "Submit Button", ref: "button[type='submit']" });
|
|
18
|
+
|
|
19
|
+
// Type
|
|
20
|
+
await playwright.type({ element: "Search", ref: "#search", text: "query" });
|
|
21
|
+
|
|
22
|
+
// Fill form
|
|
23
|
+
await playwright.fillForm({
|
|
24
|
+
fields: [
|
|
25
|
+
{ name: "Email", type: "textbox", ref: "#email", value: "user@example.com" },
|
|
26
|
+
{ name: "Password", type: "textbox", ref: "#password", value: "secret" }
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### DOM & Monitoring
|
|
32
|
+
```typescript
|
|
33
|
+
// Get accessibility tree
|
|
34
|
+
const snapshot = await playwright.snapshot();
|
|
35
|
+
|
|
36
|
+
// Console errors
|
|
37
|
+
const errors = await playwright.getConsoleMessages({ onlyErrors: true });
|
|
38
|
+
|
|
39
|
+
// Network requests
|
|
40
|
+
const requests = await playwright.getNetworkRequests();
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Common Patterns
|
|
44
|
+
|
|
45
|
+
### Login Flow
|
|
46
|
+
```typescript
|
|
47
|
+
1. navigate to login page
|
|
48
|
+
2. fillForm with credentials
|
|
49
|
+
3. click submit button
|
|
50
|
+
4. waitFor dashboard text
|
|
51
|
+
5. verify success via snapshot
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Error Detection
|
|
55
|
+
```typescript
|
|
56
|
+
const errors = await playwright.getConsoleMessages({ onlyErrors: true });
|
|
57
|
+
if (errors.length > 0) {
|
|
58
|
+
await playwright.takeScreenshot({ filename: "error-state.png" });
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Best Practices
|
|
63
|
+
|
|
64
|
+
✅ **DO:**
|
|
65
|
+
- Wait for specific conditions (not time delays)
|
|
66
|
+
- Use descriptive element names
|
|
67
|
+
- Handle dialogs (`handleDialog`)
|
|
68
|
+
- Check console errors after actions
|
|
69
|
+
- Take screenshots at critical points
|
|
70
|
+
|
|
71
|
+
❌ **DON'T:**
|
|
72
|
+
- Use hard-coded delays
|
|
73
|
+
- Use generic element selectors
|
|
74
|
+
- Ignore console errors
|
|
75
|
+
- Use relative file paths (uploads)
|
|
76
|
+
|
|
77
|
+
## Configuration
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"playwright": {
|
|
83
|
+
"command": "npx",
|
|
84
|
+
"args": ["-y", "@modelcontextprotocol/server-playwright"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
<!-- PLAYWRIGHT:END -->
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<!-- RULEBOOK_MCP:START -->
|
|
2
|
+
# Rulebook MCP Server Instructions
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Use MCP Rulebook server to manage tasks programmatically instead of executing terminal commands.
|
|
5
|
+
|
|
6
|
+
## Core Functions
|
|
7
|
+
|
|
8
|
+
### 1. rulebook_task_create
|
|
9
|
+
Create a new Rulebook task with OpenSpec-compatible format:
|
|
10
|
+
```
|
|
11
|
+
rulebook_task_create({
|
|
12
|
+
taskId: "add-feature-name",
|
|
13
|
+
proposal: {
|
|
14
|
+
why: "Users need this feature...",
|
|
15
|
+
whatChanges: "Add feature with X, Y, Z",
|
|
16
|
+
impact: {
|
|
17
|
+
affectedSpecs: ["specs/module/spec.md"],
|
|
18
|
+
affectedCode: ["src/module/"],
|
|
19
|
+
breakingChange: false,
|
|
20
|
+
userBenefit: "Better user experience"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. rulebook_task_list
|
|
27
|
+
List all tasks with optional filters:
|
|
28
|
+
```
|
|
29
|
+
rulebook_task_list({
|
|
30
|
+
status: "in-progress",
|
|
31
|
+
includeArchived: false
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 3. rulebook_task_show
|
|
36
|
+
Show detailed task information:
|
|
37
|
+
```
|
|
38
|
+
rulebook_task_show({
|
|
39
|
+
taskId: "add-feature-name"
|
|
40
|
+
})
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 4. rulebook_task_update
|
|
44
|
+
Update task status or progress:
|
|
45
|
+
```
|
|
46
|
+
rulebook_task_update({
|
|
47
|
+
taskId: "add-feature-name",
|
|
48
|
+
status: "in-progress",
|
|
49
|
+
progress: 50
|
|
50
|
+
})
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 5. rulebook_task_validate
|
|
54
|
+
Validate task format against OpenSpec requirements:
|
|
55
|
+
```
|
|
56
|
+
rulebook_task_validate({
|
|
57
|
+
taskId: "add-feature-name"
|
|
58
|
+
})
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 6. rulebook_task_archive
|
|
62
|
+
Archive completed task and apply spec deltas:
|
|
63
|
+
```
|
|
64
|
+
rulebook_task_archive({
|
|
65
|
+
taskId: "add-feature-name",
|
|
66
|
+
skipValidation: false
|
|
67
|
+
})
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Workflow
|
|
71
|
+
|
|
72
|
+
**When creating tasks:**
|
|
73
|
+
```
|
|
74
|
+
1. Use rulebook_task_create instead of terminal command
|
|
75
|
+
2. Provide complete proposal with why/whatChanges/impact
|
|
76
|
+
3. Verify task creation with rulebook_task_show
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**When managing task progress:**
|
|
80
|
+
```
|
|
81
|
+
1. Use rulebook_task_list to see all tasks
|
|
82
|
+
2. Update status with rulebook_task_update as work progresses
|
|
83
|
+
3. Validate format with rulebook_task_validate before archiving
|
|
84
|
+
4. Archive completed tasks with rulebook_task_archive
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Before archiving:**
|
|
88
|
+
```
|
|
89
|
+
1. Always run rulebook_task_validate first
|
|
90
|
+
2. Fix any validation errors
|
|
91
|
+
3. Ensure all tasks in tasks.md are completed
|
|
92
|
+
4. Archive with skipValidation: false
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Best Practices
|
|
96
|
+
|
|
97
|
+
✅ **DO:**
|
|
98
|
+
- Use MCP functions instead of terminal commands for task management
|
|
99
|
+
- Always validate tasks before archiving
|
|
100
|
+
- Update task status as work progresses
|
|
101
|
+
- Provide complete proposal information when creating tasks
|
|
102
|
+
- Check task details with rulebook_task_show before operations
|
|
103
|
+
|
|
104
|
+
❌ **DON'T:**
|
|
105
|
+
- Execute `rulebook task create` commands in terminal
|
|
106
|
+
- Archive tasks without validation
|
|
107
|
+
- Skip proposal content when creating tasks
|
|
108
|
+
- Use terminal commands when MCP functions are available
|
|
109
|
+
|
|
110
|
+
## Configuration
|
|
111
|
+
|
|
112
|
+
The Rulebook MCP server is configured in `.cursor/mcp.json`:
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"mcpServers": {
|
|
117
|
+
"rulebook": {
|
|
118
|
+
"command": "node",
|
|
119
|
+
"args": ["dist/mcp/rulebook-server.js"],
|
|
120
|
+
"env": {}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
For production (npx):
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"mcpServers": {
|
|
130
|
+
"rulebook": {
|
|
131
|
+
"command": "npx",
|
|
132
|
+
"args": ["-y", "@hivehub/rulebook@latest", "mcp-server"],
|
|
133
|
+
"env": {}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Integration
|
|
140
|
+
|
|
141
|
+
The MCP server integrates seamlessly with:
|
|
142
|
+
- Cursor IDE (via `.cursor/mcp.json`)
|
|
143
|
+
- Claude Desktop (via config file)
|
|
144
|
+
- Other MCP-compatible clients
|
|
145
|
+
|
|
146
|
+
All task operations are available through MCP functions, eliminating the need for terminal command execution.
|
|
147
|
+
|
|
148
|
+
## Documentation
|
|
149
|
+
|
|
150
|
+
For complete API documentation, see:
|
|
151
|
+
- `/docs/MCP_SERVER.md` - Full API reference
|
|
152
|
+
- `/docs/guides/MCP_SERVER_SETUP.md` - Setup guide
|
|
153
|
+
- `/README.md` - General project information
|
|
154
|
+
|
|
155
|
+
<!-- RULEBOOK_MCP:END -->
|
|
156
|
+
|