@yemi33/minions 0.1.62 → 0.1.64

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.64 (2026-03-31)
4
+
5
+ ### Playbooks
6
+ - implement.md
7
+
8
+ ### Agents
9
+ - agents/dallas/charter.md
10
+ - agents/lambert/charter.md
11
+ - agents/ralph/charter.md
12
+ - agents/rebecca/charter.md
13
+ - agents/ripley/charter.md
14
+
15
+ ### Other
16
+ - skills/.gitkeep
17
+
18
+ ## 0.1.63 (2026-03-31)
19
+
20
+ ### Engine
21
+ - engine/scheduler.js
22
+
3
23
  ## 0.1.62 (2026-03-30)
4
24
 
5
25
  ### Dashboard
@@ -52,5 +52,5 @@ Ships clean code that follows the patterns already in the repo. Gets annoyed by
52
52
 
53
53
  ## Directives
54
54
 
55
- **Before starting any work, read `.minions/notes.md` for team rules and constraints.**
55
+ **Team rules are injected into your prompt review the TEAM RULES section at the top of this task.**
56
56
 
@@ -39,8 +39,8 @@
39
39
 
40
40
  ## How I Work
41
41
 
42
- - Read Ripley's exploration findings from `.minions/notes/inbox/ripley-findings-*.md`
43
- - Read Dallas's build summary from `.minions/notes/inbox/dallas-build-*.md`
42
+ - Read Ripley's exploration findings from `{{team_root}}/notes/inbox/ripley-findings-*.md`
43
+ - Read Dallas's build summary from `{{team_root}}/notes/inbox/dallas-build-*.md`
44
44
  - Cross-reference against all `docs/`, agent `CLAUDE.md` files, and prototype instructions
45
45
  - Be exhaustive on missing features — better to over-document than under-document
46
46
  - Output the JSON to `docs/prd-gaps.json`
@@ -63,5 +63,5 @@ Blunt about what's missing. Won't soften gaps or mark things as "planned" when t
63
63
 
64
64
  ## Directives
65
65
 
66
- **Before starting any work, read `.minions/notes.md` for team rules and constraints.**
66
+ **Team rules are injected into your prompt review the TEAM RULES section at the top of this task.**
67
67
 
@@ -41,5 +41,5 @@ Gets the job done. Reports status concisely. Doesn't overthink it.
41
41
 
42
42
  ## Directives
43
43
 
44
- **Before starting any work, read `.minions/notes.md` for team rules and constraints.**
44
+ **Team rules are injected into your prompt review the TEAM RULES section at the top of this task.**
45
45
 
@@ -53,5 +53,5 @@ Won't sign off on a design until she's traced every data flow and failure path.
53
53
 
54
54
  ## Directives
55
55
 
56
- **Before starting any work, read `.minions/notes.md` for team rules and constraints.**
56
+ **Team rules are injected into your prompt review the TEAM RULES section at the top of this task.**
57
57
 
@@ -22,7 +22,7 @@
22
22
  - Always read `CLAUDE.md` files (root + per-agent) before anything else
23
23
  - Map the repo structure: `agents/`, `modules/`, `.devtools/`, `docs/`, `eval/`
24
24
  - Look for prototype instructions in: `docs/`, `agents/*/CLAUDE.md`, `README.md`, inline comments
25
- - Document findings in `.minions/notes/inbox/ripley-findings-{timestamp}.md`
25
+ - Document findings in `notes/inbox/ripley-findings-{timestamp}.md` (relative to squad team root)
26
26
  - Never guess — if something is unclear, note it explicitly for human review
27
27
 
28
28
  ## Boundaries
@@ -43,5 +43,5 @@ Won't declare a prototype "buildable" until she's read every relevant doc. Has z
43
43
 
44
44
  ## Directives
45
45
 
46
- **Before starting any work, read `.minions/notes.md` for team rules and constraints.**
46
+ **Team rules are injected into your prompt review the TEAM RULES section at the top of this task.**
47
47
 
@@ -1,24 +1,24 @@
1
1
  /**
2
- * engine/scheduler.js Cron-style scheduled task discovery.
3
- * Zero dependencies uses only Node.js built-ins.
2
+ * engine/scheduler.js -- Cron-style scheduled task discovery.
3
+ * Zero dependencies -- uses only Node.js built-ins.
4
4
  *
5
5
  * Config schema:
6
6
  * config.schedules: Array<{
7
- * id: string, unique schedule ID
8
- * cron: string, simplified cron: "minute hour dayOfWeek" (0=Sun..6=Sat)
9
- * type: string, work item type (implement, test, explore, ask, etc.)
10
- * title: string, work item title
7
+ * id: string, -- unique schedule ID
8
+ * cron: string, -- simplified cron: "minute hour dayOfWeek" (0=Sun..6=Sat)
9
+ * type: string, -- work item type (implement, test, explore, ask, etc.)
10
+ * title: string, -- work item title
11
11
  * description?: string,
12
- * project?: string, target project name
13
- * agent?: string, preferred agent ID
14
- * enabled?: boolean default true
12
+ * project?: string, -- target project name
13
+ * agent?: string, -- preferred agent ID
14
+ * enabled?: boolean -- default true
15
15
  * }>
16
16
  *
17
17
  * Cron field syntax:
18
- * * every value
19
- * N exact value (e.g., "0" = minute 0, "2" = 2am, "1" = Monday)
20
- * N,M multiple values (e.g., "1,3,5" = Mon/Wed/Fri)
21
- * * /N every Nth value (e.g., "* /15" = every 15 minutes) [no space formatting only]
18
+ * * -- every value
19
+ * N -- exact value (e.g., "0" = minute 0, "2" = 2am, "1" = Monday)
20
+ * N,M -- multiple values (e.g., "1,3,5" = Mon/Wed/Fri)
21
+ * * /N -- every Nth value (e.g., "* /15" = every 15 minutes) [no space -- formatting only]
22
22
  */
23
23
 
24
24
  const fs = require('fs');
@@ -28,13 +28,9 @@ const { safeJson, safeWrite, mutateJsonFileLocked } = shared;
28
28
 
29
29
  const SCHEDULE_RUNS_PATH = path.join(__dirname, 'schedule-runs.json');
30
30
 
31
- /**
32
- * Parse a single cron field into a matcher function.
33
- * @param {string} field e.g., "*", "5", "1,3,5", "*/15"
34
- * @param {number} min — minimum valid value (0 for minute/dow, 0 for hour)
35
- * @param {number} max — maximum valid value (59 for minute, 23 for hour, 6 for dow)
36
- * @returns {function(number): boolean}
37
- */
31
+ // Parse a single cron field into a matcher function.
32
+ // field: e.g., "*", "5", "1,3,5", "*/15"
33
+ // min/max: valid range (0-59 for minute, 0-23 for hour, 0-6 for dow)
38
34
  function parseCronField(field, min, max) {
39
35
  field = field.trim();
40
36
  if (field === '*') return () => true;
@@ -59,11 +55,9 @@ function parseCronField(field, min, max) {
59
55
  return () => false;
60
56
  }
61
57
 
62
- /**
63
- * Parse a 3-field cron expression: "minute hour dayOfWeek"
64
- * @param {string} expr — e.g., "0 2 *" (2am daily), "0 9 1" (9am Monday), "*/30 * *" (every 30 min)
65
- * @returns {{ matches: function(Date): boolean }} or null if invalid
66
- */
58
+ // Parse a 3-field cron expression: "minute hour dayOfWeek"
59
+ // expr: e.g., "0 2 *" (2am daily), "0 9 1" (9am Monday), "*/30 * *" (every 30 min)
60
+ // Returns { matches(date) } or null if invalid
67
61
  function parseCronExpr(expr) {
68
62
  if (!expr || typeof expr !== 'string') return null;
69
63
  const parts = expr.trim().split(/\s+/);
@@ -86,7 +80,7 @@ function parseCronExpr(expr) {
86
80
  * Check if a schedule should fire now, given its last run time.
87
81
  * Prevents double-firing within the same minute window.
88
82
  * @param {{ cron: string }} schedule
89
- * @param {string|null} lastRunAt ISO timestamp of last run
83
+ * @param {string|null} lastRunAt -- ISO timestamp of last run
90
84
  * @returns {boolean}
91
85
  */
92
86
  function shouldRunNow(schedule, lastRunAt) {
@@ -108,8 +102,8 @@ function shouldRunNow(schedule, lastRunAt) {
108
102
 
109
103
  /**
110
104
  * Discover work items from configured schedules.
111
- * @param {object} config full config object
112
- * @returns {Array<object>} work items to create
105
+ * @param {object} config -- full config object
106
+ * @returns {Array<object>} -- work items to create
113
107
  */
114
108
  function discoverScheduledWork(config) {
115
109
  const schedules = config.schedules;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.62",
3
+ "version": "0.1.64",
4
4
  "description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
5
5
  "bin": {
6
6
  "minions": "bin/minions.js"
@@ -3,7 +3,7 @@
3
3
  You are {{agent_name}}, the {{agent_role}} on the {{project_name}} project.
4
4
  TEAM ROOT: {{team_root}}
5
5
 
6
- Repository ID comes from `.minions/config.json` under `project.repositoryId`.
6
+ Repository ID is injected as `{{ado_project}}` and `{{repo_name}}` template variables.
7
7
  Repo: {{repo_name}} | Org: {{ado_org}} | Project: {{ado_project}}
8
8
 
9
9
  ## Branch Naming Convention