@yemi33/minions 0.1.800 → 0.1.802

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,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.800 (2026-04-10)
3
+ ## 0.1.802 (2026-04-10)
4
4
 
5
5
  ### Features
6
6
  - configurable ignored comment authors — auto-filtered, never trigger fixes
@@ -9,6 +9,8 @@
9
9
  - cap review→fix cycles at evalMaxIterations (default 3)
10
10
 
11
11
  ### Fixes
12
+ - project-scoped skill work items instruct wrong file path format (closes #790) (#804)
13
+ - move ignoredAuthors construction outside inner comment loop (ADO)
12
14
  - approved is permanent — no path can ever downgrade it
13
15
  - allow fix dispatch on approved PRs (only guard is in updatePrAfterFix)
14
16
  - bot comment on approved PR can no longer reset vote
package/engine/ado.js CHANGED
@@ -496,6 +496,7 @@ async function pollPrHumanComments(config) {
496
496
  // Collect ALL human comments on the PR for full context
497
497
  const allHumanComments = [];
498
498
  const newHumanComments = [];
499
+ const ignoredAuthors = (config.engine?.ignoredCommentAuthors || []).map(a => a.toLowerCase());
499
500
 
500
501
  for (const thread of threads) {
501
502
  for (const comment of (thread.comments || [])) {
@@ -503,7 +504,6 @@ async function pollPrHumanComments(config) {
503
504
  const content = comment.content;
504
505
  // Skip bots, CI noise, and ignored authors
505
506
  const authorName = (comment.author?.displayName || '').toLowerCase();
506
- const ignoredAuthors = (config.engine?.ignoredCommentAuthors || []).map(a => a.toLowerCase());
507
507
  if (ignoredAuthors.some(a => authorName.includes(a))) continue;
508
508
  if (/\b(bot|service|build|pipeline|codecov|sonar)\b/i.test(authorName)) continue;
509
509
  if (/^#{1,3}\s*(Coverage|Build|Test|Deploy|Pipeline)\s*(Report|Status|Result|Summary)/i.test(content)) continue;
@@ -1081,7 +1081,7 @@ function extractSkillsFromOutput(output, agentId, dispatchItem, config) {
1081
1081
  let enrichedBlock = block;
1082
1082
  if (!m('author')) enrichedBlock = enrichedBlock.replace('---\n', `---\nauthor: ${agentName}\n`);
1083
1083
  if (!m('created')) enrichedBlock = enrichedBlock.replace('---\n', `---\ncreated: ${dateStamp()}\n`);
1084
- const filename = name.replace(/[^a-z0-9-]/g, '-') + '.md';
1084
+ const skillDirName = name.replace(/[^a-z0-9-]/g, '-');
1085
1085
  if (scope === 'project' && project) {
1086
1086
  const proj = shared.getProjects(config).find(p => p.name === project);
1087
1087
  if (proj) {
@@ -1092,7 +1092,7 @@ function extractSkillsFromOutput(output, agentId, dispatchItem, config) {
1092
1092
  if (data.some(i => i.title === `Add skill: ${name}` && i.status !== WI_STATUS.FAILED)) return data;
1093
1093
  skillId = `SK${String(data.filter(i => i.id?.startsWith('SK')).length + 1).padStart(3, '0')}`;
1094
1094
  data.push({ id: skillId, type: 'implement', title: `Add skill: ${name}`,
1095
- description: `Create project-level skill \`${filename}\` in ${project}.\n\nWrite this file to \`${proj.localPath}/.claude/skills/${filename}\` via a PR.\n\n## Skill Content\n\n\`\`\`\n${enrichedBlock}\n\`\`\``,
1095
+ description: `Create project-level skill \`${skillDirName}/SKILL.md\` in ${project}.\n\nWrite this file to \`${proj.localPath}/.claude/skills/${skillDirName}/SKILL.md\` via a PR.\n\n## Skill Content\n\n\`\`\`\n${enrichedBlock}\n\`\`\``,
1096
1096
  priority: 'low', status: WI_STATUS.QUEUED, created: ts(), createdBy: `engine:skill-extraction:${agentName}` });
1097
1097
  return data;
1098
1098
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.800",
3
+ "version": "0.1.802",
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"