@mastra/factory 0.1.0-alpha.7 → 0.1.0-alpha.8

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,17 @@
1
1
  # @mastra/factory
2
2
 
3
+ ## 0.1.0-alpha.8
4
+
5
+ ### Minor Changes
6
+
7
+ - Added autonomous first-pass skills to the Software Factory. Work items now get an automatic investigation, planning, or review pass as soon as they enter the matching board column — no human input needed mid-run: ([#20058](https://github.com/mastra-ai/mastra/pull/20058))
8
+
9
+ - **factory-triage** runs when an issue enters triage: it investigates the issue, diagnoses the root cause, and requests a move to planning (or done if the issue should be closed).
10
+ - **factory-plan** runs when an item enters planning: it produces a phased implementation plan and requests a move to execute.
11
+ - **factory-review** runs when a pull request enters review: it reviews the changes, posts a verdict, and requests completion.
12
+
13
+ Instead of stopping to ask questions, the skills decide and record each decision as an assumption, batching assumptions and genuinely-human questions into one terminal handoff message. The superseded interactive skills (understand-issue, understand-pr) were removed.
14
+
3
15
  ## 0.1.0-alpha.7
4
16
 
5
17
  ### Patch Changes
package/dist/factory.js CHANGED
@@ -35423,9 +35423,9 @@ function trustedGithubActor(context) {
35423
35423
  function invokeIssueInvestigation(context) {
35424
35424
  return {
35425
35425
  type: "invokeSkill",
35426
- idempotencyKey: `${context.ingress.id}:understand-issue`,
35426
+ idempotencyKey: `${context.ingress.id}:factory-triage`,
35427
35427
  role: "triage",
35428
- skillName: "understand-issue",
35428
+ skillName: "factory-triage",
35429
35429
  arguments: context.item.url ? `GitHub issue (${context.item.url})` : context.item.title
35430
35430
  };
35431
35431
  }
@@ -35436,18 +35436,27 @@ function investigateTriagedLinearIssue(context) {
35436
35436
  const identifier = context.item.sourceKey?.startsWith("linear:") ? context.item.sourceKey.slice("linear:".length) : context.item.title;
35437
35437
  return {
35438
35438
  type: "invokeSkill",
35439
- idempotencyKey: `${context.ingress.id}:understand-linear-issue`,
35439
+ idempotencyKey: `${context.ingress.id}:factory-triage-linear`,
35440
35440
  role: "triage",
35441
- skillName: "understand-issue",
35441
+ skillName: "factory-triage",
35442
35442
  arguments: `Linear issue ${identifier}${context.item.url ? ` (${context.item.url})` : ""}`
35443
35443
  };
35444
35444
  }
35445
+ function planWorkItem(context) {
35446
+ return {
35447
+ type: "invokeSkill",
35448
+ idempotencyKey: `${context.ingress.id}:factory-plan`,
35449
+ role: "plan",
35450
+ skillName: "factory-plan",
35451
+ arguments: context.item.url ? `Work item (${context.item.url})` : context.item.title
35452
+ };
35453
+ }
35445
35454
  function reviewPullRequest(context) {
35446
35455
  return {
35447
35456
  type: "invokeSkill",
35448
- idempotencyKey: `${context.ingress.id}:understand-pr`,
35457
+ idempotencyKey: `${context.ingress.id}:factory-review`,
35449
35458
  role: "review",
35450
- skillName: "understand-pr",
35459
+ skillName: "factory-review",
35451
35460
  arguments: context.item.url ? `GitHub pull request (${context.item.url})` : context.item.title
35452
35461
  };
35453
35462
  }
@@ -35545,6 +35554,11 @@ var BUILT_IN_DEFAULTS = {
35545
35554
  triage: {
35546
35555
  issue: { onEnter: investigateTriagedIssue },
35547
35556
  linearIssue: { onEnter: investigateTriagedLinearIssue }
35557
+ },
35558
+ planning: {
35559
+ issue: { onEnter: planWorkItem },
35560
+ linearIssue: { onEnter: planWorkItem },
35561
+ manual: { onEnter: planWorkItem }
35548
35562
  }
35549
35563
  },
35550
35564
  review: { review: { pullRequest: { onEnter: reviewPullRequest } } },
@@ -38462,7 +38476,7 @@ var FACTORY_SKILLS_SOURCE_PATH = [
38462
38476
  join3(process.cwd(), "src", "mastra", "public", "factory-skills")
38463
38477
  ].find(existsSync2) ?? bundledFactorySkillsPath;
38464
38478
  var FACTORY_SKILLS_MOUNT = path2.resolve(path2.parse(process.cwd()).root, "__mastracode_factory_skills__");
38465
- var FACTORY_SKILL_NAMES = /* @__PURE__ */ new Set(["configure-factory-rules", "understand-issue", "understand-pr"]);
38479
+ var FACTORY_SKILL_NAMES = /* @__PURE__ */ new Set(["configure-factory-rules", "factory-plan", "factory-review", "factory-triage"]);
38466
38480
  var FactorySkillSource = class {
38467
38481
  constructor(fallback, fallbackSkillRoots) {
38468
38482
  this.fallback = fallback;