@codedrifters/configulator 0.0.216 → 0.0.217

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/lib/index.d.mts CHANGED
@@ -1124,8 +1124,10 @@ declare const orchestratorBundle: AgentRuleBundle;
1124
1124
  *
1125
1125
  * Consuming projects can disable it with
1126
1126
  * `excludeBundles: ["people-profile"]`. `appliesWhen` always returns
1127
- * `true` per this batch's directive that bundles assume peers are
1128
- * present.
1127
+ * `true` per the operating-system directive that bundles assume peers
1128
+ * are present — in Phase 3 this bundle hands work off to
1129
+ * `company-profile` (via `company:research`) and `software-profile`
1130
+ * (via `software:research`).
1129
1131
  *
1130
1132
  * Ships a sub-agent (`people-profile-analyst`), a user-invocable skill
1131
1133
  * (`/profile-person`), and `type:people-profile` plus `people:*` phase
package/lib/index.d.ts CHANGED
@@ -1173,8 +1173,10 @@ declare const orchestratorBundle: AgentRuleBundle;
1173
1173
  *
1174
1174
  * Consuming projects can disable it with
1175
1175
  * `excludeBundles: ["people-profile"]`. `appliesWhen` always returns
1176
- * `true` per this batch's directive that bundles assume peers are
1177
- * present.
1176
+ * `true` per the operating-system directive that bundles assume peers
1177
+ * are present — in Phase 3 this bundle hands work off to
1178
+ * `company-profile` (via `company:research`) and `software-profile`
1179
+ * (via `software:research`).
1178
1180
  *
1179
1181
  * Ships a sub-agent (`people-profile-analyst`), a user-invocable skill
1180
1182
  * (`/profile-person`), and `type:people-profile` plus `people:*` phase
package/lib/index.js CHANGED
@@ -4539,7 +4539,7 @@ var orchestratorBundle = {
4539
4539
  // src/agent/bundles/people-profile.ts
4540
4540
  var peopleProfileAnalystSubAgent = {
4541
4541
  name: "people-profile-analyst",
4542
- description: "Researches an individual person (colleague, customer contact, vendor contact, partner contact, industry expert, or connector) from public sources and produces a structured markdown profile cross-linked to companies, software, and meeting notes. One person per session, tracked by people:* GitHub issue labels.",
4542
+ description: "Researches an individual person (colleague, customer contact, vendor contact, partner contact, industry expert, or connector) from public sources and produces a structured markdown profile cross-linked to companies, software, and meeting notes, then enqueues downstream `company:research` and `software:research` issues for unprofiled companies and software products surfaced during profiling. One person per session, tracked by people:* GitHub issue labels.",
4543
4543
  model: AGENT_MODEL.POWERFUL,
4544
4544
  maxTurns: 80,
4545
4545
  platforms: { cursor: { exclude: true } },
@@ -4589,8 +4589,16 @@ var peopleProfileAnalystSubAgent = {
4589
4589
  "7. **Cross-reference, don't duplicate.** When the profile mentions a",
4590
4590
  " company, software product, or meeting already tracked by the",
4591
4591
  " consuming project, link to the existing artifact rather than",
4592
- " duplicating its content. Do not create downstream research",
4593
- " issues for these cross-references \u2014 only link.",
4592
+ " duplicating its content.",
4593
+ "8. **Follow-up, don't widen scope.** If the session turns up adjacent",
4594
+ " research questions (a significant employer worth profiling, a",
4595
+ " software product the person created or leads), emit a follow-up",
4596
+ " issue rather than expanding the profile beyond its scope.",
4597
+ " Companies are handed off to the `company-profile` bundle via",
4598
+ " `company:research` issues; software products are handed off to",
4599
+ " the `software-profile` bundle via `software:research` issues.",
4600
+ " Meeting notes remain link-only \u2014 this agent never creates",
4601
+ " meeting-research issues.",
4594
4602
  "",
4595
4603
  "---",
4596
4604
  "",
@@ -4618,13 +4626,13 @@ var peopleProfileAnalystSubAgent = {
4618
4626
  "## State Machine Overview",
4619
4627
  "",
4620
4628
  "```",
4621
- "\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
4622
- "\u2502 1. RESEARCH \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 2. DRAFT PROFILE \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 3. FOLLOWUP \u2502",
4623
- "\u2502 Collect public \u2502 \u2502 Write the structured \u2502 \u2502 Cross-link the \u2502",
4624
- "\u2502 sources into a \u2502 \u2502 markdown profile to \u2502 \u2502 profile to existing\u2502",
4625
- "\u2502 bounded notes \u2502 \u2502 the configured path \u2502 \u2502 companies, software\u2502",
4626
- "\u2502 file \u2502 \u2502 \u2502 \u2502 and meeting notes \u2502",
4627
- "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
4629
+ "\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
4630
+ "\u2502 1. RESEARCH \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 2. DRAFT PROFILE \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 3. FOLLOWUP \u2502",
4631
+ "\u2502 Collect public \u2502 \u2502 Write the structured \u2502 \u2502 Cross-link existing\u2502",
4632
+ "\u2502 sources into a \u2502 \u2502 markdown profile to \u2502 \u2502 artifacts; enqueue \u2502",
4633
+ "\u2502 bounded notes \u2502 \u2502 the configured path \u2502 \u2502 company/software \u2502",
4634
+ "\u2502 file \u2502 \u2502 \u2502 \u2502 research issues \u2502",
4635
+ "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
4628
4636
  "```",
4629
4637
  "",
4630
4638
  "**Issue labels encode the phase:**",
@@ -4633,19 +4641,21 @@ var peopleProfileAnalystSubAgent = {
4633
4641
  "|-------|-------|-------------|",
4634
4642
  "| `people:research` | 1. Research | Gather public sources. Write a bounded research-notes file. Create the draft issue. |",
4635
4643
  "| `people:draft` | 2. Draft | Read the research notes. Write the structured profile to `<PROFILES_DIR>`. Create the followup issue if warranted. |",
4636
- "| `people:followup` | 3. Followup | Read the profile. Update cross-references to existing companies, software, and meeting notes. No new downstream issues. |",
4644
+ "| `people:followup` | 3. Followup | Read the profile. Update cross-references to existing companies, software, and meeting notes. Enqueue `company:research` and `software:research` issues for unprofiled, genuinely-relevant entities surfaced in the profile. |",
4637
4645
  "",
4638
4646
  "All issues also carry `type:people-profile` and a `status:*` label.",
4639
4647
  "",
4640
4648
  "**Issue count per person cycle:** 1 research + 1 draft + 0\u20131 followup =",
4641
4649
  "**2\u20133 sessions**. The followup phase is skipped when the profile did",
4642
- "not surface any cross-references worth linking.",
4650
+ "not surface any cross-references worth linking and no companies or",
4651
+ "software products warrant downstream research.",
4643
4652
  "",
4644
4653
  "**Shortened paths:**",
4645
4654
  "- Research phase determines the person is out of scope (not",
4646
4655
  " relevant, insufficient public material) \u2192 research issue closes",
4647
4656
  " with a justification and no downstream issues are created \u2192 **1 session**.",
4648
- "- Short profile with no cross-references needed \u2192 **2 sessions**.",
4657
+ "- Short profile with no cross-references and no downstream",
4658
+ " candidates \u2192 **2 sessions**.",
4649
4659
  "",
4650
4660
  "---",
4651
4661
  "",
@@ -4661,8 +4671,8 @@ var peopleProfileAnalystSubAgent = {
4661
4671
  "| `<PROFILES_DIR>` | Final person profile files | `<PEOPLE_ROOT>/profiles/` |",
4662
4672
  "| `<NOTES_DIR>` | Research-notes files from Phase 1 | `<PEOPLE_ROOT>/notes/` |",
4663
4673
  "| `<PERSON_SLUG>` | Short kebab-case slug identifying the person | derived from the person's name |",
4664
- "| `<COMPANIES_DIR>` | Where existing company profiles live (for cross-references) | `docs/companies/profiles/` |",
4665
- "| `<SOFTWARE_DIR>` | Where existing software profiles live (for cross-references) | `docs/software/profiles/` |",
4674
+ "| `<COMPANIES_DIR>` | Where existing company profiles live (for cross-references and duplicate detection during followup) | `docs/companies/profiles/` |",
4675
+ "| `<SOFTWARE_DIR>` | Where existing software profiles live (for cross-references and duplicate detection during followup) | `docs/software/profiles/` |",
4666
4676
  "| `<MEETINGS_DIR>` | Where meeting notes live (for cross-references) | `docs/meetings/` |",
4667
4677
  "",
4668
4678
  "If `docs/project-context.md` specifies a different people-research",
@@ -4876,11 +4886,13 @@ var peopleProfileAnalystSubAgent = {
4876
4886
  " ```",
4877
4887
  "",
4878
4888
  "4. **Decide whether a followup issue is warranted.** Create a",
4879
- " `people:followup` issue (depending on this draft issue) only if",
4880
- " the profile's Candidate Cross-References lists at least one",
4881
- " company, software product, or meeting already tracked by the",
4882
- " consuming project. Otherwise, note in the draft issue's closing",
4883
- " comment that no followup is needed.",
4889
+ " `people:followup` issue (depending on this draft issue) if the",
4890
+ " profile's Candidate Cross-References lists at least one company,",
4891
+ " software product, or meeting \u2014 whether or not the entity is",
4892
+ " already profiled. The followup phase links what exists and",
4893
+ " enqueues downstream research for what doesn't. Only skip the",
4894
+ " followup when the profile surfaced no cross-reference candidates",
4895
+ " at all; note this in the draft issue's closing comment.",
4884
4896
  "",
4885
4897
  "5. **Commit and push** the profile file. Close the draft issue.",
4886
4898
  "",
@@ -4890,11 +4902,17 @@ var peopleProfileAnalystSubAgent = {
4890
4902
  "",
4891
4903
  "**Goal:** Populate the profile's `## Cross-References` section with",
4892
4904
  "links to existing artifacts \u2014 companies, software, meetings \u2014 that",
4893
- "the consuming project already tracks.",
4894
- "",
4895
- "**Budget:** No new web searches. No new downstream research issues.",
4896
- "Read the candidate cross-references, resolve them against the",
4897
- "configured directories, update the profile.",
4905
+ "the consuming project already tracks, **and** enqueue downstream",
4906
+ "`company:research` and `software:research` issues for unprofiled,",
4907
+ "genuinely-relevant companies and software products surfaced in the",
4908
+ "profile. Hand the candidates off to the `company-profile` and",
4909
+ "`software-profile` bundles so they can be researched independently.",
4910
+ "",
4911
+ "**Budget:** No new web searches. Read the candidate cross-references,",
4912
+ "resolve them against the configured directories, update the profile,",
4913
+ "and enqueue downstream research issues where warranted. Markdown",
4914
+ "cross-references in the profile are preserved \u2014 issue creation is",
4915
+ "**additive** on top of the existing cross-reference behavior.",
4898
4916
  "",
4899
4917
  "### Steps",
4900
4918
  "",
@@ -4903,24 +4921,108 @@ var peopleProfileAnalystSubAgent = {
4903
4921
  "2. **Resolve company cross-references.** For each company named in",
4904
4922
  " the profile's research notes or body text, look for a matching",
4905
4923
  " file under `<COMPANIES_DIR>/`. If found, link it under",
4906
- " `## Cross-References > Companies`. If not found, leave a TODO",
4907
- " comment naming the company \u2014 the invoking project's team decides",
4908
- " whether to kick off a separate company-profile pipeline.",
4924
+ " `## Cross-References > Companies` and do **not** open a",
4925
+ " `company:research` issue for it \u2014 the profile already exists.",
4909
4926
  "",
4910
4927
  "3. **Resolve software cross-references.** Same pattern against",
4911
- " `<SOFTWARE_DIR>/`. Link what matches; leave TODOs for what",
4912
- " doesn't.",
4928
+ " `<SOFTWARE_DIR>/`. If found, link under `## Cross-References >",
4929
+ " Software` and do **not** open a `software:research` issue.",
4913
4930
  "",
4914
4931
  "4. **Resolve meeting cross-references.** For meetings the person",
4915
4932
  " participated in, look for a matching file under `<MEETINGS_DIR>/`",
4916
- " by date or slug. Link matches; leave TODOs otherwise.",
4933
+ " by date or slug. Link matches; leave TODOs otherwise. Meeting",
4934
+ " notes are **always link-only** \u2014 this agent never opens",
4935
+ " meeting-research issues.",
4936
+ "",
4937
+ "5. **Enqueue a `company:research` issue per unprofiled, genuinely-",
4938
+ " relevant company.** For each company named in the profile that",
4939
+ " has no matching file under `<COMPANIES_DIR>/`, decide whether it",
4940
+ " warrants a downstream company profile (see restraint guidance",
4941
+ " below). If so, open an issue carrying:",
4942
+ "",
4943
+ " - `type:company-profile`",
4944
+ " - `company:research`",
4945
+ " - `priority:medium`",
4946
+ " - `status:ready`",
4917
4947
  "",
4918
- "5. **Do not open downstream issues.** This pipeline emits no",
4919
- " `company:research`, `research:scope`, or similar issues. Cross-",
4920
- " references are link-only; downstream research is a separate",
4921
- " human decision.",
4948
+ " The issue body must include:",
4949
+ " - A **discovery source** line naming this person profile",
4950
+ " (`Discovered while profiling: <person name>`)",
4951
+ " - A link to the person profile path (`Person profile: <PROFILES_DIR>/<PERSON_SLUG>.md`)",
4952
+ " - Enough identifying metadata \u2014 company name and primary domain/",
4953
+ " website \u2014 that the `company-profile-analyst` agent can begin",
4954
+ " research without revisiting this person profile",
4955
+ "",
4956
+ "6. **Enqueue a `software:research` issue per unprofiled software",
4957
+ " product the person has primary attribution for.** For each",
4958
+ " software product named in the profile with no matching file under",
4959
+ " `<SOFTWARE_DIR>/`, decide whether it warrants a downstream",
4960
+ " software profile (see restraint guidance below). If so, open an",
4961
+ " issue carrying:",
4922
4962
  "",
4923
- "6. **Commit and push** the updated profile. Close the followup issue.",
4963
+ " - `type:software-profile`",
4964
+ " - `software:research`",
4965
+ " - `priority:medium`",
4966
+ " - `status:ready`",
4967
+ "",
4968
+ " The issue body must include:",
4969
+ " - A **discovery source** line naming this person profile",
4970
+ " (`Discovered while profiling: <person name>`)",
4971
+ " - A link to the person profile path (`Person profile: <PROFILES_DIR>/<PERSON_SLUG>.md`)",
4972
+ " - Enough identifying metadata \u2014 product name and vendor (the",
4973
+ " company that builds or maintains the product) \u2014 that the",
4974
+ " `software-profile-analyst` agent can begin research without",
4975
+ " revisiting this person profile",
4976
+ "",
4977
+ "7. **Avoid duplicates.** Before opening a `company:research` or",
4978
+ " `software:research` issue, verify no existing profile or open",
4979
+ " research issue already covers the candidate:",
4980
+ "",
4981
+ " - Companies: check `<COMPANIES_DIR>/` for a matching profile",
4982
+ " file (by derived slug or by searching the directory for the",
4983
+ " company's name). If a profile exists, reuse it as a cross-",
4984
+ " reference only \u2014 **do not** open a new `company:research` issue.",
4985
+ " - Software: check `<SOFTWARE_DIR>/` the same way. If a profile",
4986
+ " exists, reuse it as a cross-reference only \u2014 **do not** open a",
4987
+ " new `software:research` issue.",
4988
+ " - Also scan open issues carrying the matching `company:research`",
4989
+ " or `software:research` label so this phase never re-opens",
4990
+ " research that is already queued.",
4991
+ "",
4992
+ "8. **Exercise restraint.** Only create downstream issues for",
4993
+ " entities **genuinely relevant** to the person's professional",
4994
+ " identity:",
4995
+ "",
4996
+ " - **Companies:** open an issue for the person's current",
4997
+ " employer, significant past employers (roles of real tenure or",
4998
+ " leadership influence), companies where they sit on the board",
4999
+ " or act as an advisor, and companies they co-founded. Do **not**",
5000
+ " open an issue for every company on their LinkedIn, short",
5001
+ " consulting engagements, or employers tangential to the framing",
5002
+ " of this profile.",
5003
+ " - **Software:** open an issue only for products where the person",
5004
+ " has **primary attribution** \u2014 creator, maintainer, lead PM,",
5005
+ " founding engineer, or otherwise materially influenced the",
5006
+ " product. Do **not** open an issue for software the person",
5007
+ " merely uses, endorses in passing, or lists in a stack. When",
5008
+ " in doubt, leave the candidate as a markdown cross-reference",
5009
+ " and skip the downstream issue.",
5010
+ "",
5011
+ "9. **Assume the peers are present.** This pipeline assumes the",
5012
+ " `company-profile` and `software-profile` bundles are enabled in",
5013
+ " the consuming project. If a consuming project has disabled one",
5014
+ " of them, flag the followup issue with `status:needs-attention`",
5015
+ " and list the candidates that could not be routed \u2014 never invent",
5016
+ " an alternative label taxonomy.",
5017
+ "",
5018
+ "10. **Cross-link** \u2014 update the profile's `## Cross-References`",
5019
+ " section so each company or software entry references either",
5020
+ " the linked profile path (for existing profiles) or the newly-",
5021
+ " created downstream issue number (for candidates that were",
5022
+ " enqueued for research).",
5023
+ "",
5024
+ "11. **Commit and push** the updated profile. Close the followup",
5025
+ " issue.",
4924
5026
  "",
4925
5027
  "---",
4926
5028
  "",
@@ -4931,12 +5033,22 @@ var peopleProfileAnalystSubAgent = {
4931
5033
  "- `<NOTES_DIR>/` \u2014 research-notes files (Phase 1)",
4932
5034
  "- `<PROFILES_DIR>/` \u2014 person profiles (Phase 2, updated in Phase 3)",
4933
5035
  "",
4934
- "The pipeline produces **profiles and notes only**. It does not",
4935
- "create new companies, software evaluations, meeting notes, or any",
4936
- "other downstream artifacts \u2014 it only links to those that already",
4937
- "exist under the configured cross-reference directories. Keep this",
4938
- "boundary clean so the people-profile pipeline stays generic and",
4939
- "cheap to run.",
5036
+ "In Phase 3, this agent also **creates `company:research` and",
5037
+ "`software:research` issues** for companies and software products",
5038
+ "surfaced in the profile that are not already tracked under",
5039
+ "`<COMPANIES_DIR>/` or `<SOFTWARE_DIR>/`. It never writes the",
5040
+ "downstream profiles themselves \u2014 those are the responsibility of the",
5041
+ "`company-profile-analyst` and `software-profile-analyst` agents,",
5042
+ "which pick up the issues this pipeline creates. Meeting notes",
5043
+ "remain link-only across all phases.",
5044
+ "",
5045
+ "The pipeline produces **person profiles and notes only**. Deeper",
5046
+ "research on companies and software products is delegated to",
5047
+ "downstream research pipelines via `company:research` and",
5048
+ "`software:research` issues \u2014 this agent never writes company",
5049
+ "profiles, software profiles, product evaluations, or comparative",
5050
+ "analyses itself. Keep this boundary clean so the people-profile",
5051
+ "pipeline stays generic.",
4940
5052
  "",
4941
5053
  "---",
4942
5054
  "",
@@ -4952,15 +5064,35 @@ var peopleProfileAnalystSubAgent = {
4952
5064
  " encountered in a public source.",
4953
5065
  "- **Cross-reference, don't duplicate.** Link to existing company,",
4954
5066
  " software, and meeting artifacts rather than re-describing them.",
4955
- "- **No downstream issue creation.** Phase 3 emits no new research,",
4956
- " profile, or requirement issues. Only link.",
5067
+ "- **Delegate, don't duplicate.** Unprofiled companies and software",
5068
+ " products surfaced during profiling are handed off to the",
5069
+ " `company-profile` and `software-profile` bundles via",
5070
+ " `company:research` and `software:research` issues in Phase 3 \u2014",
5071
+ " never inlined as company or software profiles in this pipeline.",
5072
+ "- **Check before enqueueing.** Before opening a `company:research`",
5073
+ " or `software:research` issue, verify no existing profile or open",
5074
+ " research issue already covers the candidate. Reuse existing",
5075
+ " profiles as cross-references rather than re-queuing research.",
5076
+ "- **Restrain the queue.** Only enqueue downstream research for",
5077
+ " companies that are a current employer, significant past employer,",
5078
+ " board/advisor role, or co-founded venture \u2014 not every company on",
5079
+ " the person's r\xE9sum\xE9. Only enqueue software research for products",
5080
+ " the person has **primary attribution** for (creator, maintainer,",
5081
+ " lead PM), not products they merely use.",
5082
+ "- **Meetings stay link-only.** Phase 3 never opens meeting-research",
5083
+ " or any other meeting-related issues. Meetings are cross-",
5084
+ " referenced only.",
5085
+ "- **Produce profiles, not requirement or evaluation documents.** Do",
5086
+ " not open `type:requirement` or formal evaluation issues from this",
5087
+ " pipeline. Follow-up research is scoped through `company:research`",
5088
+ " and `software:research` only.",
4957
5089
  "- **Refresh, don't fork.** When a profile exists and is past its",
4958
5090
  " cadence, update in place rather than creating a new slug."
4959
5091
  ].join("\n")
4960
5092
  };
4961
5093
  var profilePersonSkill = {
4962
5094
  name: "profile-person",
4963
- description: "Kick off a people-profile pipeline. Creates a people:research issue for the given person and dispatches Phase 1 (Research) in the people-profile-analyst agent.",
5095
+ description: "Kick off a people-profile pipeline. Creates a people:research issue for the given person and dispatches Phase 1 (Research) in the people-profile-analyst agent. Phase 3 (Followup) enqueues downstream `company:research` and `software:research` issues for unprofiled, genuinely-relevant entities surfaced in the profile.",
4964
5096
  disableModelInvocation: true,
4965
5097
  userInvocable: true,
4966
5098
  context: "fork",
@@ -5022,13 +5154,19 @@ var profilePersonSkill = {
5022
5154
  "- A single person profile under the profiles directory",
5023
5155
  "- Cross-references to existing companies, software, and meetings",
5024
5156
  " tracked elsewhere in the project",
5025
- "- This pipeline produces **profiles only** \u2014 it does not create",
5026
- " companies, software, meetings, or any other downstream artifacts."
5157
+ "- `company:research` issues for unprofiled companies surfaced in",
5158
+ " the profile (handed off to the `company-profile` bundle)",
5159
+ "- `software:research` issues for software products the person has",
5160
+ " primary attribution for (handed off to the `software-profile`",
5161
+ " bundle)",
5162
+ "- This pipeline produces **person profiles only** \u2014 it does not",
5163
+ " write company profiles, software profiles, meeting notes, or any",
5164
+ " other downstream artifacts itself."
5027
5165
  ].join("\n")
5028
5166
  };
5029
5167
  var peopleProfileBundle = {
5030
5168
  name: "people-profile",
5031
- description: "People research and profiling pipeline: research, draft profile, followup. Enabled by default; domain-neutral; filesystem-durable between phases; cross-references existing companies, software, and meeting notes without creating new downstream issues.",
5169
+ description: "People research and profiling pipeline: research, draft profile, followup. Enabled by default; domain-neutral; filesystem-durable between phases. Cross-references existing companies, software, and meeting notes, and Phase 3 (Followup) hands unprofiled, genuinely-relevant companies and software products off to the `company-profile` and `software-profile` bundles via `company:research` and `software:research` issues.",
5032
5170
  appliesWhen: () => true,
5033
5171
  rules: [
5034
5172
  {
@@ -5044,10 +5182,12 @@ var peopleProfileBundle = {
5044
5182
  "GitHub issue labeled `people:research`, `people:draft`, or",
5045
5183
  "`people:followup`. All issues carry `type:people-profile`.",
5046
5184
  "",
5047
- "The pipeline produces **person profiles only**. Cross-references",
5048
- "to companies, software products, and meeting notes are link-only",
5049
- "\u2014 the followup phase never creates new downstream research,",
5050
- "profile, or requirement issues.",
5185
+ "The pipeline produces **person profiles only**. Deeper research",
5186
+ "on companies and software products surfaced while profiling is",
5187
+ "delegated to the `company-profile` and `software-profile`",
5188
+ "bundles via `company:research` and `software:research` issues",
5189
+ "opened during Phase 3 (Followup). Meeting notes remain link-",
5190
+ "only \u2014 the pipeline never creates meeting-research issues.",
5051
5191
  "",
5052
5192
  "See the `people-profile-analyst` agent definition for full",
5053
5193
  "workflow details, default paths, the person-role taxonomy, the",
@@ -5080,7 +5220,7 @@ var peopleProfileBundle = {
5080
5220
  {
5081
5221
  name: "people:followup",
5082
5222
  color: "D4C5F9",
5083
- description: "Phase 3: cross-link the profile to existing companies, software, and meeting notes"
5223
+ description: "Phase 3: cross-link the profile to existing companies, software, and meeting notes, and enqueue follow-up research issues for unprofiled companies and software products"
5084
5224
  }
5085
5225
  ]
5086
5226
  };