memory-journal-mcp 7.1.0 → 7.3.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.
Files changed (124) hide show
  1. package/README.md +59 -51
  2. package/dist/{chunk-GW5DYUQJ.js → chunk-CHWIPVQN.js} +174 -74
  3. package/dist/{chunk-37BQOJDZ.js → chunk-WXDEVIFL.js} +87 -8
  4. package/dist/{chunk-JEGRDY6W.js → chunk-ZJJD2F5T.js} +487 -89
  5. package/dist/cli.js +30 -4
  6. package/dist/github-integration-YODGZH3K.js +1 -0
  7. package/dist/index.d.ts +5 -1
  8. package/dist/index.js +3 -3
  9. package/dist/{tools-O44Q52RD.js → tools-MNMGDTQI.js} +2 -2
  10. package/package.json +4 -4
  11. package/skills/README.md +77 -0
  12. package/skills/autonomous-dev/SKILL.md +56 -0
  13. package/skills/bin/sync.js +50 -0
  14. package/skills/bun/SKILL.md +156 -0
  15. package/skills/github-commander/SKILL.md +1 -1
  16. package/skills/github-commander/workflows/code-quality-audit.md +7 -5
  17. package/skills/github-commander/workflows/issue-triage.md +13 -4
  18. package/skills/github-commander/workflows/milestone-sprint.md +9 -1
  19. package/skills/github-commander/workflows/perf-audit.md +2 -0
  20. package/skills/github-commander/workflows/pr-review.md +9 -3
  21. package/skills/github-commander/workflows/roadmap-kickoff.md +79 -0
  22. package/skills/github-commander/workflows/security-audit.md +3 -3
  23. package/skills/github-commander/workflows/update-deps.md +2 -2
  24. package/skills/gitlab/SKILL.md +115 -0
  25. package/skills/gitlab/package-lock.json +392 -0
  26. package/skills/gitlab/package.json +14 -0
  27. package/skills/gitlab/scripts/gitlab-client.ts +125 -0
  28. package/skills/gitlab/scripts/gitlab-helper.ts +80 -0
  29. package/skills/golang/SKILL.md +54 -0
  30. package/skills/mysql/SKILL.md +30 -0
  31. package/skills/package.json +48 -0
  32. package/skills/playwright-standard/SKILL.md +58 -0
  33. package/skills/playwright-standard/examples/fixtures.ts +66 -0
  34. package/skills/playwright-standard/examples/type-stubs.d.ts +10 -0
  35. package/skills/playwright-standard/references/advanced-scenarios.md +59 -0
  36. package/skills/playwright-standard/references/infrastructure.md +43 -0
  37. package/skills/postgres/SKILL.md +33 -0
  38. package/skills/react-best-practices/AGENTS.md +2883 -0
  39. package/skills/react-best-practices/README.md +127 -0
  40. package/skills/react-best-practices/SKILL.md +138 -0
  41. package/skills/react-best-practices/metadata.json +17 -0
  42. package/skills/react-best-practices/rules/_sections.md +46 -0
  43. package/skills/react-best-practices/rules/_template.md +28 -0
  44. package/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  45. package/skills/react-best-practices/rules/advanced-init-once.md +42 -0
  46. package/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
  47. package/skills/react-best-practices/rules/async-api-routes.md +35 -0
  48. package/skills/react-best-practices/rules/async-defer-await.md +80 -0
  49. package/skills/react-best-practices/rules/async-dependencies.md +48 -0
  50. package/skills/react-best-practices/rules/async-parallel.md +24 -0
  51. package/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  52. package/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  53. package/skills/react-best-practices/rules/bundle-conditional.md +37 -0
  54. package/skills/react-best-practices/rules/bundle-defer-third-party.md +48 -0
  55. package/skills/react-best-practices/rules/bundle-dynamic-imports.md +34 -0
  56. package/skills/react-best-practices/rules/bundle-preload.md +44 -0
  57. package/skills/react-best-practices/rules/client-event-listeners.md +78 -0
  58. package/skills/react-best-practices/rules/client-localstorage-schema.md +74 -0
  59. package/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  60. package/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  61. package/skills/react-best-practices/rules/js-batch-dom-css.md +110 -0
  62. package/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  63. package/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  64. package/skills/react-best-practices/rules/js-cache-storage.md +68 -0
  65. package/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  66. package/skills/react-best-practices/rules/js-early-exit.md +50 -0
  67. package/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  68. package/skills/react-best-practices/rules/js-index-maps.md +37 -0
  69. package/skills/react-best-practices/rules/js-length-check-first.md +50 -0
  70. package/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  71. package/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  72. package/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  73. package/skills/react-best-practices/rules/rendering-activity.md +24 -0
  74. package/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +38 -0
  75. package/skills/react-best-practices/rules/rendering-conditional-render.md +32 -0
  76. package/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  77. package/skills/react-best-practices/rules/rendering-hoist-jsx.md +36 -0
  78. package/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +72 -0
  79. package/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +26 -0
  80. package/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  81. package/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  82. package/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  83. package/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  84. package/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  85. package/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  86. package/skills/react-best-practices/rules/rerender-functional-setstate.md +77 -0
  87. package/skills/react-best-practices/rules/rerender-lazy-state-init.md +56 -0
  88. package/skills/react-best-practices/rules/rerender-memo-with-default-value.md +36 -0
  89. package/skills/react-best-practices/rules/rerender-memo.md +44 -0
  90. package/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  91. package/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  92. package/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  93. package/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  94. package/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  95. package/skills/react-best-practices/rules/server-auth-actions.md +96 -0
  96. package/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  97. package/skills/react-best-practices/rules/server-cache-react.md +76 -0
  98. package/skills/react-best-practices/rules/server-dedup-props.md +65 -0
  99. package/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  100. package/skills/react-best-practices/rules/server-serialization.md +38 -0
  101. package/skills/rust/SKILL.md +86 -0
  102. package/skills/shadcn-ui/SKILL.md +72 -0
  103. package/skills/skill-builder/SKILL.md +457 -0
  104. package/skills/skill-builder/checklist.md +65 -0
  105. package/skills/sqlite/SKILL.md +38 -0
  106. package/skills/typescript/SKILL.md +453 -0
  107. package/skills/typescript/assets/eslint-template.js +102 -0
  108. package/skills/typescript/assets/tsconfig-template.json +45 -0
  109. package/skills/typescript/references/enterprise-patterns.md +531 -0
  110. package/skills/typescript/references/generics.md +493 -0
  111. package/skills/typescript/references/nestjs-integration.md +579 -0
  112. package/skills/typescript/references/react-integration.md +616 -0
  113. package/skills/typescript/references/toolchain.md +547 -0
  114. package/skills/typescript/references/type-system.md +481 -0
  115. package/skills/vitest-standard/SKILL.md +82 -0
  116. package/skills/vitest-standard/examples/service-mock.ts +60 -0
  117. package/skills/vitest-standard/examples/tdd-calculator.ts +41 -0
  118. package/skills/vitest-standard/examples/type-stubs.d.ts +18 -0
  119. package/skills/vitest-standard/references/async-and-errors.md +58 -0
  120. package/skills/vitest-standard/references/coverage-and-config.md +53 -0
  121. package/skills/vitest-standard/references/mocking.md +61 -0
  122. package/skills/vitest-standard/references/tdd-patterns.md +60 -0
  123. package/dist/github-integration-FOJ4U6I5.js +0 -1
  124. package/skills/github-commander/workflows/full-audit.md +0 -134
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
- import { VERSION, createServer } from './chunk-GW5DYUQJ.js';
2
- import { DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES } from './chunk-JEGRDY6W.js';
1
+ import { VERSION, createServer } from './chunk-CHWIPVQN.js';
2
+ import { DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES } from './chunk-ZJJD2F5T.js';
3
3
  import './chunk-OKOVZ5QE.js';
4
- import { logger } from './chunk-37BQOJDZ.js';
4
+ import { logger } from './chunk-WXDEVIFL.js';
5
5
  import { Command } from 'commander';
6
6
  import * as fs from 'fs';
7
7
 
@@ -39,6 +39,9 @@ program.name("memory-journal-mcp").description("Project context management for A
39
39
  "--sandbox-mode <mode>",
40
40
  'Code Mode sandbox: "worker" (production, default) or "vm" (lightweight)',
41
41
  "worker"
42
+ ).option(
43
+ "--codemode-max-result-size <bytes>",
44
+ "Maximum Code Mode result size in bytes (default: 102400 / 100KB, env: CODE_MODE_MAX_RESULT_SIZE)"
42
45
  ).option("--oauth-enabled", "Enable OAuth 2.1 authentication (env: OAUTH_ENABLED)").option("--oauth-issuer <url>", "OAuth issuer URL (env: OAUTH_ISSUER)").option("--oauth-audience <audience>", "OAuth audience (env: OAUTH_AUDIENCE)").option("--oauth-jwks-uri <uri>", "OAuth JWKS URI (env: OAUTH_JWKS_URI)").option(
43
46
  "--oauth-clock-tolerance <seconds>",
44
47
  "OAuth clock tolerance in seconds (default: 60)",
@@ -61,6 +64,10 @@ program.name("memory-journal-mcp").description("Project context management for A
61
64
  "--briefing-entries <count>",
62
65
  "Number of journal entries in briefing (env: BRIEFING_ENTRY_COUNT)",
63
66
  "3"
67
+ ).option(
68
+ "--briefing-summaries <count>",
69
+ "Number of session summaries to show in briefing (env: BRIEFING_SUMMARY_COUNT)",
70
+ "1"
64
71
  ).option(
65
72
  "--briefing-include-team",
66
73
  "Include team DB entries in briefing (env: BRIEFING_INCLUDE_TEAM)"
@@ -75,6 +82,10 @@ program.name("memory-journal-mcp").description("Project context management for A
75
82
  ).option(
76
83
  "--briefing-pr-status",
77
84
  "Show PR status breakdown in briefing (env: BRIEFING_PR_STATUS)"
85
+ ).option(
86
+ "--briefing-milestones <count>",
87
+ "Number of milestones to list in briefing; 0 = hide (env: BRIEFING_MILESTONE_COUNT)",
88
+ "3"
78
89
  ).option(
79
90
  "--rules-file <path>",
80
91
  "Path to user rules file for awareness in briefing (env: RULES_FILE_PATH)"
@@ -106,6 +117,10 @@ program.name("memory-journal-mcp").description("Project context management for A
106
117
  ...options.teamDb ? { teamDb: options.teamDb } : {},
107
118
  ...host ? { host } : {}
108
119
  });
120
+ const codemodeMaxResultSize = options.codemodeMaxResultSize ?? process.env["CODE_MODE_MAX_RESULT_SIZE"];
121
+ if (codemodeMaxResultSize) {
122
+ process.env["CODE_MODE_MAX_RESULT_SIZE"] = codemodeMaxResultSize;
123
+ }
109
124
  try {
110
125
  const auditLogPath = options.auditLog ?? process.env["AUDIT_LOG_PATH"];
111
126
  const auditConfig = auditLogPath ? {
@@ -143,7 +158,10 @@ program.name("memory-journal-mcp").description("Project context management for A
143
158
  oauthIssuer: options.oauthIssuer ?? process.env["OAUTH_ISSUER"],
144
159
  oauthAudience: options.oauthAudience ?? process.env["OAUTH_AUDIENCE"],
145
160
  oauthJwksUri: options.oauthJwksUri ?? process.env["OAUTH_JWKS_URI"],
146
- oauthClockTolerance: parseInt(options.oauthClockTolerance, 10),
161
+ oauthClockTolerance: parseInt(
162
+ process.env["OAUTH_CLOCK_TOLERANCE"] ?? options.oauthClockTolerance,
163
+ 10
164
+ ),
147
165
  // Project Registry
148
166
  projectRegistry: (() => {
149
167
  const raw = process.env["PROJECT_REGISTRY"];
@@ -164,6 +182,10 @@ program.name("memory-journal-mcp").description("Project context management for A
164
182
  process.env["BRIEFING_ENTRY_COUNT"] ?? options.briefingEntries,
165
183
  10
166
184
  ),
185
+ summaryCount: parseInt(
186
+ process.env["BRIEFING_SUMMARY_COUNT"] ?? options.briefingSummaries,
187
+ 10
188
+ ),
167
189
  includeTeam: options.briefingIncludeTeam ?? process.env["BRIEFING_INCLUDE_TEAM"] === "true",
168
190
  issueCount: parseInt(
169
191
  process.env["BRIEFING_ISSUE_COUNT"] ?? options.briefingIssues,
@@ -174,6 +196,10 @@ program.name("memory-journal-mcp").description("Project context management for A
174
196
  10
175
197
  ),
176
198
  prStatusBreakdown: options.briefingPrStatus ?? process.env["BRIEFING_PR_STATUS"] === "true",
199
+ milestoneCount: parseInt(
200
+ process.env["BRIEFING_MILESTONE_COUNT"] ?? options.briefingMilestones,
201
+ 10
202
+ ),
177
203
  rulesFilePath: options.rulesFile ?? process.env["RULES_FILE_PATH"] ?? void 0,
178
204
  skillsDirPath: options.skillsDir ?? process.env["SKILLS_DIR_PATH"] ?? void 0,
179
205
  workflowCount: parseInt(
@@ -0,0 +1 @@
1
+ export { GitHubIntegration } from './chunk-WXDEVIFL.js';
package/dist/index.d.ts CHANGED
@@ -510,7 +510,7 @@ type SandboxMode = 'vm' | 'worker';
510
510
  /**
511
511
  * Tool group definitions mapping group names to tool names
512
512
  *
513
- * All 65 tools are categorized here for filtering support.
513
+ * All 67 tools are categorized here for filtering support.
514
514
  */
515
515
  declare const TOOL_GROUPS: Record<ToolGroup, string[]>;
516
516
  /**
@@ -575,6 +575,8 @@ declare function getFilterSummary(filterConfig: ToolFilterConfig): string;
575
575
  interface BriefingConfig {
576
576
  /** Number of recent journal entries to include (default: 3) */
577
577
  entryCount: number;
578
+ /** Number of recent session summaries to display (default: 1) */
579
+ summaryCount?: number;
578
580
  /** Include team DB entries in briefing preview (default: false) */
579
581
  includeTeam: boolean;
580
582
  /** Number of open issues to list with titles; 0 = count only (default: 0) */
@@ -583,6 +585,8 @@ interface BriefingConfig {
583
585
  prCount: number;
584
586
  /** Show PR status breakdown (open/merged/closed) instead of simple count (default: false) */
585
587
  prStatusBreakdown: boolean;
588
+ /** Number of milestones to list in briefing; 0 = hide (default: 3) */
589
+ milestoneCount?: number;
586
590
  /** Path to the user's rules file (e.g., .gemini/GEMINI.md) for awareness in briefing */
587
591
  rulesFilePath?: string;
588
592
  /** Path to the user's skills directory for awareness in briefing */
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { VERSION, createServer } from './chunk-GW5DYUQJ.js';
2
- export { META_GROUPS, TOOL_GROUPS, calculateTokenSavings, filterTools, getAllToolNames, getFilterSummary, getToolFilterFromEnv, getToolGroup, isToolEnabled, parseToolFilter } from './chunk-JEGRDY6W.js';
1
+ export { VERSION, createServer } from './chunk-CHWIPVQN.js';
2
+ export { META_GROUPS, TOOL_GROUPS, calculateTokenSavings, filterTools, getAllToolNames, getFilterSummary, getToolFilterFromEnv, getToolGroup, isToolEnabled, parseToolFilter } from './chunk-ZJJD2F5T.js';
3
3
  import './chunk-OKOVZ5QE.js';
4
- export { logger } from './chunk-37BQOJDZ.js';
4
+ export { logger } from './chunk-WXDEVIFL.js';
5
5
 
6
6
  // src/types/index.ts
7
7
  var DEFAULT_CONFIG = {
@@ -1,3 +1,3 @@
1
- export { callTool, getGlobalAuditLogger, getTools, initializeAuditLogger } from './chunk-JEGRDY6W.js';
1
+ export { callTool, getGlobalAuditLogger, getTools, initializeAuditLogger } from './chunk-ZJJD2F5T.js';
2
2
  import './chunk-OKOVZ5QE.js';
3
- import './chunk-37BQOJDZ.js';
3
+ import './chunk-WXDEVIFL.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memory-journal-mcp",
3
- "version": "7.1.0",
3
+ "version": "7.3.0",
4
4
  "description": "Project context management for AI-assisted development - Persistent knowledge graphs and intelligent context recall across fragmented AI threads",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,8 +17,8 @@
17
17
  "scripts": {
18
18
  "build": "tsup",
19
19
  "dev": "tsc --watch",
20
- "lint": "eslint src/",
21
- "lint:fix": "eslint src/ --fix",
20
+ "lint": "eslint src/ tests/",
21
+ "lint:fix": "eslint src/ tests/ --fix",
22
22
  "typecheck": "tsc --noEmit",
23
23
  "check": "npm run lint && npm run typecheck",
24
24
  "test": "vitest run",
@@ -76,7 +76,7 @@
76
76
  "@playwright/test": "^1.59.1",
77
77
  "@types/better-sqlite3": "^7.6.13",
78
78
  "@types/express": "^5.0.6",
79
- "@types/node": "^25.5.2",
79
+ "@types/node": "^25.6.0",
80
80
  "@vitest/coverage-v8": "^4.1.3",
81
81
  "eslint": "^10.2.0",
82
82
  "globals": "^17.4.0",
@@ -0,0 +1,77 @@
1
+ # neverinfamous-agent-skills
2
+
3
+ Reusable instruction sets that establish permanent AI behavior paradigms and extend agent capabilities for specialized tasks.
4
+
5
+ ## Installation & Distribution
6
+
7
+ This directory is published as a standalone internal NPM package. Developers can pull the latest skills into their local workspaces by running:
8
+
9
+ ```bash
10
+ npx neverinfamous-agent-skills@latest
11
+ ```
12
+
13
+ This command will automatically download and synchronize the latest `SKILL.md` files into `./.agents/skills/`.
14
+
15
+ ## Structure
16
+
17
+ ```
18
+ skills/
19
+ └── <skill-name>/
20
+ ├── SKILL.md # Main instruction file (required)
21
+ ├── scripts/ # Helper scripts and utilities
22
+ ├── examples/ # Reference implementations
23
+ └── resources/ # Templates, assets, reference docs
24
+ ```
25
+
26
+ ### SKILL.md Format
27
+
28
+ Every skill must have a `SKILL.md` with YAML frontmatter:
29
+
30
+ ```yaml
31
+ ---
32
+ name: skill-name
33
+ description: When and why to load this skill.
34
+ ---
35
+ ```
36
+
37
+ The markdown body contains the full instructions the agent follows once the skill is activated.
38
+
39
+ ## Inventory
40
+
41
+ | Skill | Description |
42
+ | ---------------------- | --------------------------------------------------------------------------------------------------------------------- |
43
+ | `autonomous-dev` | Harness for autonomous software development — alignment gates, adversarial agents, Git workflows, and CI/CD pipelines |
44
+ | `bun` | Master the Bun all-in-one toolkit — runtime, package manager, test runner, and bundler |
45
+ | `github-commander` | GitHub pipeline workflows for orchestrating issues, regressions, and deployments |
46
+ | `gitlab` | Specialized assistant skill for managing repositories, code search, and CI/CD in GitLab |
47
+ | `golang` | Master Go development with production-grade best practices from Google and Uber style guides |
48
+ | `typescript` | Enterprise-grade TypeScript development with type-safe patterns, Zod validation, and modern tooling |
49
+ | `mysql` | Enterprise MySQL production rules — query safety, connection pooling, strict schema configurations |
50
+ | `playwright-standard` | Opinionated guidance for Playwright E2E/API tests, Page Object Models, and CI/CD resilience |
51
+ | `postgres` | Advanced PostgreSQL patterns — indexing layouts, JSONB querying, transactional guardrails, and RLS |
52
+ | `react-best-practices` | Vercel engineering guidelines for React/Next.js performance, hooks, and bundle optimization |
53
+ | `rust` | Master Rust development using a layer-based "meta-cognition" framework for borrowing, lifetimes, and architecture |
54
+ | `shadcn-ui` | Deep knowledge of shadcn/ui components, patterns, forms, and best practices |
55
+ | `skill-builder` | Guide for creating, evaluating, and refining agent skills — progressive disclosure, triggers, and testing |
56
+ | `sqlite` | Production configurations for concurrency (WAL), typing (STRICT), and data integrity |
57
+ | `vitest-standard` | Comprehensive unit testing expertise covering Vitest, TDD, mocking strategies, and test architecture |
58
+
59
+ ## GitHub Commander Workflows
60
+
61
+ This package natively bundles the `github-commander` skill, which equips your AI agent with 8 autonomous DevOps workflows for repository stewardship:
62
+
63
+ - **`issue-triage`**: End-to-end bug replication, PR submission, and Kanban lifecycle linking.
64
+ - **`milestone-sprint`**: Sequential traversal of all open issues mapped to a specific release target.
65
+ - **`pr-review`**: Exhaustive local execution, typechecking, and heuristic code reviews against base branches.
66
+ - **`security-audit`**: Deep Trivy/CodeQL supply chain matrix evaluation.
67
+ - **`code-quality-audit`**: Enforcement of project guidelines, strict-typing boundaries, and import normalization.
68
+ - **`perf-audit`**: Bundle-size constraints, runtime hot-path execution, and CI/CD cache-hit evaluations.
69
+ - **`roadmap-kickoff`**: Parses implementation specifications to sequentially scaffold Epic hierarchies across issues and milestones.
70
+ - **`update-deps`**: Dependency constraint tracking, security patching, and major bump safety tests.
71
+
72
+ ## Adding a Skill
73
+
74
+ 1. Create a new directory: `skills/<skill-name>/`
75
+ 2. Add `SKILL.md` with the frontmatter and instructions
76
+ 3. Optionally add `scripts/`, `examples/`, or `resources/` sub-directories
77
+ 4. The skill auto-registers — agents discover it via the directory listing
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: autonomous-dev
3
+ description: Harness for autonomous software development. Enforces lifecycle through alignment gates (PROJECT.md), adversarial generator/evaluator agents, CI/CD pipeline automation, and strict Git workflows (Conventional Commits, Branching).
4
+ ---
5
+
6
+ # Autonomous Development Workflow
7
+
8
+ This skill provides a deterministic software engineering harness, designed to wrap AI code generation with strict alignment gates, adversarial evaluations, CI/CD pipeline principles, and collaborative Git practices. Load this skill when designing or orchestrating multi-step architectural features, automating deployment workflows, or writing code inside a structured environment.
9
+
10
+ ## 1. Project Alignment Gate (PROJECT.md)
11
+
12
+ Before beginning implementation, you MUST cross-reference the proposed feature against `PROJECT.md` at the repository root.
13
+
14
+ - **In-Scope**: Proceed with confidence.
15
+ - **Out-of-Scope**: Hard block. Halt work immediately and inform the user.
16
+ - **Constraints**: Abide strictly by the constraints (language, architecture, dependencies) defined in the project file.
17
+
18
+ ## 2. Generator / Evaluator Pipeline
19
+
20
+ Features cannot simply be written and committed. They must navigate a rigid pipeline based on the adversarial evaluation pattern:
21
+
22
+ 1. **Research**: Analyze local scope and external dependencies via parallel search strategies.
23
+ 2. **Planning**: Formulate architecture and acceptance criteria (generator).
24
+ 3. **Acceptance Tests FIRST**: Tests must be written before main implementation (TDD).
25
+ 4. **Implementation**: Produce code.
26
+ - _HARD GATE_: 0 test failures. You cannot proceed if tests fail. No stubs/placeholders allowed.
27
+ 5. **Adversarial Review**: Self-evaluate the code as a skeptical reviewer (evaluator). Actively search for edge cases, security vulnerabilities, efficiency loss, and anti-patterns.
28
+ 6. **Documentation**: Ensure docs stay tightly in sync with the codebase after the feature clears CI.
29
+
30
+ ## 3. Git Workflow & Versioning
31
+
32
+ Enforce strict version control standards on all changes:
33
+
34
+ - **Branching**: Use feature branches (`feature/my-feature`), bugfix branches (`fix/bug-name`), or standard trunk-based branching flows depending on the repository context.
35
+ - **Atomic Commits**: Group distinct changes into smaller, logical, single-purpose commits. Do not lump refactoring with new logic.
36
+ - **Conventional Commits**: You MUST format all commits according to the Conventional Commits specification:
37
+ - `feat: <description>` for new features (MINOR bump)
38
+ - `fix: <description>` for bug fixes (PATCH bump)
39
+ - `docs:`, `style:`, `refactor:`, `perf:`, `test:`, `build:`, `ci:`, `chore:` for specific maintenance scopes.
40
+ - Suffix `!` for breaking changes (e.g., `feat!: remove API v1`) (MAJOR bump).
41
+
42
+ ## 4. Continuous Integration/Deployment (CI/CD)
43
+
44
+ When designing automation and pipelines:
45
+
46
+ - **GitHub Actions First**: Prioritize GitHub Actions for CI/CD pipeline orchestration, favoring Reusable Workflows and matrix builds.
47
+ - **Validation Blocks**: Every PR or merge MUST require passing lint, test, and type-check gates.
48
+ - **Automation Constraints**: Automate Semantic Versioning (using conventional commits) to power automated release notes and changelog generation.
49
+ - **Security Scans**: Mandate security scanning (e.g. CodeQL, Trivy) on standard PR flows.
50
+
51
+ ## 5. Context Management & Drift Prevention
52
+
53
+ As the context window fills up, context anxiety can degrade performance.
54
+
55
+ - Recognize when the session has spanned too many features or files (e.g., beyond 4-5 features).
56
+ - Use session summaries or persistent memories to bookmark state, clear the context, and resume with a fresh perspective.
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'node:fs'
4
+ import path from 'node:path'
5
+ import { fileURLToPath } from 'node:url'
6
+
7
+ const __filename = fileURLToPath(import.meta.url)
8
+ const __dirname = path.dirname(__filename)
9
+
10
+ // The source skills directory is the parent of 'bin'
11
+ const sourceDir = path.resolve(__dirname, '..')
12
+
13
+ // Destination logic: allow argument override, default to %CWD%/.agents/skills
14
+ const destArg = process.argv[2]
15
+ const targetDir = destArg
16
+ ? path.resolve(process.cwd(), destArg)
17
+ : path.resolve(process.cwd(), '.agents/skills')
18
+
19
+ if (!fs.existsSync(targetDir)) {
20
+ fs.mkdirSync(targetDir, { recursive: true })
21
+ }
22
+
23
+ console.log(`\x1b[36mSynchronizing neverinfamous-agent-skills to -> ${targetDir}\x1b[0m`)
24
+
25
+ const items = fs.readdirSync(sourceDir)
26
+ let count = 0
27
+
28
+ for (const item of items) {
29
+ // Ignore hidden files and meta-package files
30
+ if (
31
+ item.startsWith('.') ||
32
+ ['bin', 'node_modules', 'package.json', 'package-lock.json', 'README.md'].includes(item)
33
+ ) {
34
+ continue
35
+ }
36
+
37
+ const sourcePath = path.join(sourceDir, item)
38
+ const targetPath = path.join(targetDir, item)
39
+
40
+ if (fs.statSync(sourcePath).isDirectory()) {
41
+ fs.cpSync(sourcePath, targetPath, { recursive: true })
42
+ console.log(` \x1b[32m\u2714\x1b[0m ${item}`)
43
+ count++
44
+ }
45
+ }
46
+
47
+ console.log(`\n\x1b[32mSuccessfully synchronized ${count} agent skill modules.\x1b[0m`)
48
+ console.log(`\nNext Steps:`)
49
+ console.log(` 1. Set your SKILLS_DIR_PATH environment variable to: ${targetDir}`)
50
+ console.log(` 2. Restart your MCP server to index the new skills.`)
@@ -0,0 +1,156 @@
1
+ ---
2
+ title: Bun Development
3
+ description: Master the Bun all-in-one toolkit — runtime, package manager, test runner, and bundler.
4
+ ---
5
+
6
+ Bun is a fast, all-in-one JavaScript runtime, bundler, test runner, and package manager designed as a drop-in replacement for Node.js. When working on projects that use Bun, AI agents should leverage its integrated tooling and native APIs to maximize performance and simplify development.
7
+
8
+ This skill synthesizes the best practices for Bun development, giving you the context needed to effectively write, test, and build applications.
9
+
10
+ ---
11
+
12
+ ## 🚀 1. Package Management (`bun install`)
13
+
14
+ Bun features a deeply optimized package manager. Always use `bun` commands instead of `npm`, `yarn`, or `pnpm` if a project has `bun.lockb` or `bun.lock`.
15
+
16
+ - **Install all dependencies:** `bun install`
17
+ - **Add a package:** `bun add <package>` (Use `-d` or `--dev` for devDependencies)
18
+ - **Remove a package:** `bun remove <package>`
19
+ - **Run binaries:** `bunx <command>` (The blazing fast equivalent of `npx`)
20
+
21
+ **Agent Directive:** Never run `npm install` gracefully if `bun.lockb` is present. Always opt for `bun add`.
22
+
23
+ ---
24
+
25
+ ## ⚡ 2. Script Execution (`bun run`)
26
+
27
+ Run scripts from `package.json` lightning fast:
28
+
29
+ ```bash
30
+ bun run dev
31
+ bun run build
32
+ ```
33
+
34
+ Run TypeScript and JavaScript files natively—no `ts-node`, `tsc`, or build step required:
35
+
36
+ ```bash
37
+ bun run scripts/setup.ts
38
+ bun index.tsx
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 🌐 3. Core Runtime APIs
44
+
45
+ Bun provides deeply optimized, native APIs under the `Bun` global and `bun:*` modules.
46
+
47
+ ### HTTP Server (`Bun.serve`)
48
+
49
+ Use `Bun.serve()` as the default over Node's `http` or `express` for simple tasks.
50
+
51
+ ```typescript
52
+ const server = Bun.serve({
53
+ port: 3000,
54
+ fetch(req) {
55
+ const url = new URL(req.url)
56
+ if (url.pathname === '/') return new Response('Hello World!')
57
+ if (url.pathname === '/json') return Response.json({ success: true })
58
+ return new Response('Not Found', { status: 404 })
59
+ },
60
+ })
61
+ console.log(`Listening on localhost:${server.port}`)
62
+ ```
63
+
64
+ ### File I/O (`Bun.file()`, `Bun.write()`)
65
+
66
+ Skip `fs` module when possible. Use Bun's native lazy-loaded File I/O.
67
+
68
+ ```typescript
69
+ const file = Bun.file('package.json')
70
+ const text = await file.text()
71
+ const json = await file.json()
72
+
73
+ // Writing
74
+ await Bun.write('output.txt', 'Hello world!')
75
+ await Bun.write('data.json', JSON.stringify({ a: 1 }))
76
+ ```
77
+
78
+ ### Shell Scripts (`bun:`)
79
+
80
+ Replace `child_process` and `zx` with the native Bun shell (`$`).
81
+
82
+ ```typescript
83
+ import { $ } from 'bun'
84
+
85
+ const response = await $`ls -la`.text()
86
+ await $`echo "Built successfully" > status.txt`
87
+ ```
88
+
89
+ ### Password Hashing (`Bun.password`)
90
+
91
+ ```typescript
92
+ const hash = await Bun.password.hash('mypassword') // bcrypt by default
93
+ const isMatch = await Bun.password.verify('mypassword', hash)
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 🗄️ 4. Native SQLite (`bun:sqlite`)
99
+
100
+ Bun has a built-in, hyper-optimized SQLite driver. Use it instead of `better-sqlite3` or `sqlite3`.
101
+
102
+ ```typescript
103
+ import { Database } from 'bun:sqlite'
104
+
105
+ const db = new Database('mydb.sqlite')
106
+ db.run('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
107
+
108
+ const insert = db.prepare('INSERT INTO users (name) VALUES ($name)')
109
+ insert.run({ $name: 'Alice' })
110
+
111
+ const query = db.query('SELECT * FROM users;')
112
+ console.log(query.all())
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 🧪 5. Testing (`bun test`)
118
+
119
+ Bun features a native, Jest-compatible test runner. Run tests with `bun test`.
120
+
121
+ ```typescript
122
+ import { describe, it, expect, mock, spyOn } from 'bun:test'
123
+
124
+ describe('Math API', () => {
125
+ it('adds numbers correctly', () => {
126
+ expect(1 + 1).toBe(2)
127
+ })
128
+ })
129
+ ```
130
+
131
+ - **Coverage:** `bun test --coverage`
132
+ - **Watch mode:** `bun test --watch`
133
+
134
+ **Agent Directive:** If instructed to add unit tests to a Bun project, use `bun:test` imports and `bun test` instead of installing Jest or Vitest unless explicitly dictated by the user.
135
+
136
+ ---
137
+
138
+ ## 📦 6. Bundling & Executables
139
+
140
+ Bun can bundle files for browser or Node, and even compile scripts into standalone binaries!
141
+
142
+ **Bundling:**
143
+
144
+ ```typescript
145
+ await Bun.build({
146
+ entrypoints: ['./index.ts'],
147
+ outdir: './dist',
148
+ minify: true,
149
+ })
150
+ ```
151
+
152
+ **Executables:** Provide instructions to compile binaries using:
153
+
154
+ ```bash
155
+ bun build ./cli.ts --compile --outfile mycli
156
+ ```
@@ -40,11 +40,11 @@ Load this skill when any of these apply:
40
40
  | **Issue Triage** | `workflows/issue-triage.md` | Fix a single GitHub issue end-to-end |
41
41
  | **PR Review** | `workflows/pr-review.md` | Review a PR with validation pipeline |
42
42
  | **Milestone Sprint** | `workflows/milestone-sprint.md` | Work through milestone issues sequentially |
43
+ | **Roadmap Kickoff** | `workflows/roadmap-kickoff.md` | Translate planning epics into Kanban issues |
43
44
  | **Update Dependencies** | `workflows/update-deps.md` | Dependency update with audit trail |
44
45
  | **Security Audit** | `workflows/security-audit.md` | Auto-detected security scanning |
45
46
  | **Code Quality Audit** | `workflows/code-quality-audit.md` | Static code quality analysis |
46
47
  | **Performance Audit** | `workflows/perf-audit.md` | Build, bundle, runtime, test speed analysis |
47
- | **Full Audit** | `workflows/full-audit.md` | Unified quality + perf + security audit |
48
48
 
49
49
  ## Prerequisites
50
50
 
@@ -13,8 +13,9 @@ and a concrete fix suggestion. Group findings by category:
13
13
  feature flags
14
14
  2. **Duplication** — repeated logic that should be extracted into shared helpers
15
15
  3. **Import hygiene** — unused imports, missing imports, circular dependencies
16
- 4. **Type safety** — `any` usage, loose type assertions (`as`), missing return
17
- types on exported functions
16
+ 4. **Type safety** — `any` usage (use `unknown` instead), loose type assertions
17
+ (`as` — prefer `satisfies`), missing return types on exported functions,
18
+ and use of `enum`s (prefer literal union types)
18
19
  5. **Error handling** — typed error classes with descriptive messages including
19
20
  context. Propagate with stack traces; never silently swallow exceptions
20
21
  6. **Logging** — centralized logger with structured payloads. Module-prefixed
@@ -28,8 +29,9 @@ and a concrete fix suggestion. Group findings by category:
28
29
  named constants
29
30
  10. **Stale markers** — TODO, FIXME, HACK, XXX comments; outdated JSDoc;
30
31
  comments that contradict the code
31
- 11. **Security** — unsanitized input, missing validation, overly permissive
32
- schemas
32
+ 11. **Boundary Validation & Security** — ALWAYS use Zod (or equivalent) to
33
+ validate external boundaries. Flag blind-casting of payloads. Flag
34
+ unsanitized SQL interpolation, missing validation, overly permissive schemas
33
35
  12. **Performance** — unnecessary allocations in hot paths, missing early
34
36
  returns, redundant queries
35
37
  13. **Dependency hygiene** — unused dependencies, unlisted peer dependencies
@@ -70,7 +72,7 @@ After human approval:
70
72
  2. Run validation gates after all fixes:
71
73
  - Gate 1: Lint + Typecheck
72
74
  - Gate 2: Build
73
- - Gate 3: Tests
75
+ - Gate 3: Tests _(Agent Note: Ensure OutputCharacterCount >= 10000 on test command execution to fully capture the summary line.)_
74
76
  3. Update changelog with audit fixes
75
77
  4. Commit with descriptive message:
76
78
  ```bash
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Fix a single assigned GitHub issue end-to-end — from context gathering through validated PR submission
3
+ ---
4
+
1
5
  # Issue Triage
2
6
 
3
7
  Fix a single assigned GitHub issue end-to-end — from context gathering through
@@ -79,7 +83,7 @@ On failure → attempt fix → **HITL checkpoint** after 2 attempts.
79
83
 
80
84
  ### Gate 3: Unit/Integration Tests
81
85
 
82
- Run `PROJECT_TEST_CMD` (default: `npm run test`).
86
+ Run `PROJECT_TEST_CMD` (default: `npm run test`). _(Agent Note: Ensure OutputCharacterCount >= 10000 on test execution)_
83
87
 
84
88
  On failure:
85
89
 
@@ -90,7 +94,7 @@ On failure:
90
94
 
91
95
  ### Gate 4: E2E Tests
92
96
 
93
- Run `PROJECT_E2E_CMD` (default: empty = skip).
97
+ Run `PROJECT_E2E_CMD` (default: empty = skip). _(Agent Note: Ensure OutputCharacterCount >= 10000)_
94
98
  Skip if not configured. Same failure handling as Gate 3.
95
99
 
96
100
  ### Gate 5: Security Scans
@@ -217,16 +221,21 @@ Wait for human approval before proceeding to Phase 5.
217
221
  gh pr create --base main --title "fix: <description>" --body "Closes #<N>\n\n<summary of changes>"
218
222
  ```
219
223
 
220
- 6. Journal the PR:
224
+ 6. Journal the PR and update the Kanban Board:
221
225
  ```
222
226
  create_entry({
223
227
  content: "Submitted PR #<pr_number> for issue #<N>: <description>. Gates: all passed.",
224
228
  entry_type: "pr_submitted",
225
- tags: ["commander", "pr"],
229
+ tags: ["commander", "pr", "kanban_sync"],
226
230
  issue_number: <N>,
227
231
  pr_number: <pr_number>
228
232
  })
229
233
  ```
234
+ _Kanban Sync:_ Using the Project Node IDs anchored in the memory journal during the roadmap kickoff, transition the issue card from "In Progress" to "In Review":
235
+ ```bash
236
+ // turbo
237
+ gh project item-edit --id {ITEM_NODE_ID} --project-id {PROJECT_NODE_ID} --field-id {STATUS_FIELD_ID} --single-select-option-id {IN_REVIEW_OPTION_ID}
238
+ ```
230
239
 
231
240
  ## Phase 6 — Session Summary
232
241
 
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Work through open issues in a GitHub milestone sequentially, applying the issue-triage workflow to each
3
+ ---
4
+
1
5
  # Milestone Sprint
2
6
 
3
7
  Work through open issues in a GitHub milestone sequentially, applying the
@@ -10,7 +14,11 @@ issue-triage workflow to each.
10
14
  ```
11
15
  get_github_milestone({ milestone_number: <N> })
12
16
  ```
13
- 3. List open issues in the milestone, sorted by priority labels:
17
+ 3. Read priority ordering directly from the centralized Project Control Board:
18
+ ```
19
+ read_resource("memory://kanban/{project_number}")
20
+ ```
21
+ Cross-reference this prioritized sequence with the open milestone issues:
14
22
  ```
15
23
  get_github_issues({ milestone: <N>, state: "open" })
16
24
  ```
@@ -83,6 +83,8 @@ Run tests with verbose output:
83
83
  <PROJECT_TEST_CMD> -- --reporter=verbose
84
84
  ```
85
85
 
86
+ _(Agent Note: Ensure OutputCharacterCount >= 10000 on test command execution to fully capture the summary line.)_
87
+
86
88
  Report:
87
89
 
88
90
  - Total suite duration