@arvoretech/hub 0.20.0 → 0.22.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.
|
@@ -117,7 +117,7 @@ async function checkAndAutoRegenerate(hubDir) {
|
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
119
|
console.log(chalk.yellow("\n Detected outdated configs, auto-regenerating..."));
|
|
120
|
-
const { generators: generators2 } = await import("./generate-
|
|
120
|
+
const { generators: generators2 } = await import("./generate-3KUUBRXF.js");
|
|
121
121
|
const generator = generators2[result.editor];
|
|
122
122
|
if (!generator) {
|
|
123
123
|
console.log(chalk.red(` Unknown editor '${result.editor}' in cache. Run 'hub generate' manually.`));
|
|
@@ -1761,6 +1761,71 @@ Additional context sources:
|
|
|
1761
1761
|
- Use monitoring MCPs for production debugging and log analysis when available`);
|
|
1762
1762
|
return parts.join("\n");
|
|
1763
1763
|
}
|
|
1764
|
+
function buildFetchCheckerSection() {
|
|
1765
|
+
return `
|
|
1766
|
+
## Fact Checker \u2014 Mandatory Verification
|
|
1767
|
+
|
|
1768
|
+
**NEVER state the status of any external resource without verifying it first.**
|
|
1769
|
+
|
|
1770
|
+
Before making ANY claim about:
|
|
1771
|
+
- PR status (merged, open, closed, approved, changes requested)
|
|
1772
|
+
- Branch state (ahead, behind, conflicts, existence)
|
|
1773
|
+
- Deploy status (deployed, failed, in progress)
|
|
1774
|
+
- CI/CD pipeline results (passed, failed, running)
|
|
1775
|
+
- Issue/task status (open, closed, in progress)
|
|
1776
|
+
- Service health (up, down, degraded)
|
|
1777
|
+
- Any other external state that can change over time
|
|
1778
|
+
|
|
1779
|
+
You MUST:
|
|
1780
|
+
1. Use the appropriate tool to check the actual current state (GitHub CLI, MCP tools, git commands, etc.)
|
|
1781
|
+
2. Only THEN report the result to the user
|
|
1782
|
+
3. If you cannot verify, explicitly say "I was unable to verify this \u2014 please check manually"
|
|
1783
|
+
|
|
1784
|
+
**NEVER assume, guess, or rely on cached/stale information.** Every claim about external state must be backed by a fresh check.
|
|
1785
|
+
This applies to ALL agents in the pipeline, not just the orchestrator.`;
|
|
1786
|
+
}
|
|
1787
|
+
function buildMemorySection(config) {
|
|
1788
|
+
const enforce = config.memory?.enforce ?? false;
|
|
1789
|
+
if (enforce) {
|
|
1790
|
+
return `
|
|
1791
|
+
## Team Memory \u2014 MANDATORY
|
|
1792
|
+
|
|
1793
|
+
This workspace has a team memory knowledge base via the \`team-memory\` MCP.
|
|
1794
|
+
The MCP automatically generates a steering file (\`team-memories-index\`) with an index of all active memories. This file is always included in your context.
|
|
1795
|
+
|
|
1796
|
+
**Use the index first.** You already know what memories exist \u2014 check the steering file before calling any MCP tool.
|
|
1797
|
+
|
|
1798
|
+
### How to use memories:
|
|
1799
|
+
1. **Read the index** \u2014 the \`team-memories-index\` steering file lists all active memories with title, category, tags, and ID
|
|
1800
|
+
2. **Get full content** \u2014 use \`get_memory(id)\` when you need the complete context of a specific memory
|
|
1801
|
+
3. **Semantic search** \u2014 use \`search_memories\` only when you need fuzzy/semantic matching beyond what the index shows
|
|
1802
|
+
4. **Capture knowledge** \u2014 use \`add_memory\` when you discover decisions, conventions, gotchas, or domain insights during work
|
|
1803
|
+
|
|
1804
|
+
### When completing work:
|
|
1805
|
+
- If you discovered something valuable (a decision, a gotcha, a convention, a domain insight, a debugging finding), use \`add_memory\` to capture it
|
|
1806
|
+
- Be specific: include context, rationale, and affected areas
|
|
1807
|
+
- Use appropriate categories: decisions, conventions, incidents, domain, gotchas
|
|
1808
|
+
|
|
1809
|
+
### Why this matters:
|
|
1810
|
+
- Memories contain institutional knowledge that prevents repeated mistakes
|
|
1811
|
+
- Past decisions explain WHY things are the way they are
|
|
1812
|
+
- Conventions ensure consistency across the team
|
|
1813
|
+
- Gotchas save hours of debugging
|
|
1814
|
+
|
|
1815
|
+
Available tools: \`search_memories\`, \`get_memory\`, \`add_memory\`, \`list_memories\`, \`archive_memory\`, \`remove_memory\`.`;
|
|
1816
|
+
}
|
|
1817
|
+
return `
|
|
1818
|
+
## Team Memory
|
|
1819
|
+
|
|
1820
|
+
This workspace has a team memory knowledge base available via the \`team-memory\` MCP.
|
|
1821
|
+
The MCP automatically generates a steering file (\`team-memories-index\`) with an index of all active memories.
|
|
1822
|
+
|
|
1823
|
+
**Check the index first** \u2014 use \`get_memory(id)\` for full content, and \`search_memories\` only for semantic search beyond the index.
|
|
1824
|
+
|
|
1825
|
+
**After completing a task**, if you discovered something valuable (a decision, a gotcha, a convention, domain insight), use \`add_memory\` to capture it for the team.
|
|
1826
|
+
|
|
1827
|
+
Available tools: \`search_memories\`, \`get_memory\`, \`add_memory\`, \`list_memories\`, \`archive_memory\`, \`remove_memory\`.`;
|
|
1828
|
+
}
|
|
1764
1829
|
function buildCoreBehaviorSections() {
|
|
1765
1830
|
const sections = [];
|
|
1766
1831
|
sections.push(`
|
|
@@ -1909,16 +1974,10 @@ ${prompt.sections.after_delivery.trim()}`);
|
|
|
1909
1974
|
sections.push(mcpToolsSectionOpenCode);
|
|
1910
1975
|
}
|
|
1911
1976
|
if (config.memory) {
|
|
1912
|
-
sections.push(
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
**Before starting any task**, use \`search_memories\` to find relevant context \u2014 past decisions, conventions, known issues, and domain knowledge. This avoids repeating mistakes and ensures consistency with previous choices.
|
|
1918
|
-
|
|
1919
|
-
**After completing a task**, if you discovered something valuable (a decision, a gotcha, a convention, domain insight), use \`add_memory\` to capture it for the team.
|
|
1920
|
-
|
|
1921
|
-
Available tools: \`search_memories\`, \`get_memory\`, \`add_memory\`, \`list_memories\`, \`archive_memory\`, \`remove_memory\`.`);
|
|
1977
|
+
sections.push(buildMemorySection(config));
|
|
1978
|
+
}
|
|
1979
|
+
if (config.workflow?.fact_checker) {
|
|
1980
|
+
sections.push(buildFetchCheckerSection());
|
|
1922
1981
|
}
|
|
1923
1982
|
const designSectionOpenCode = buildDesignSection(config);
|
|
1924
1983
|
if (designSectionOpenCode) sections.push(designSectionOpenCode);
|
|
@@ -2234,16 +2293,10 @@ ${prompt.sections.after_delivery.trim()}`);
|
|
|
2234
2293
|
sections.push(mcpToolsSectionKiro);
|
|
2235
2294
|
}
|
|
2236
2295
|
if (config.memory) {
|
|
2237
|
-
sections.push(
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
**Before starting any task**, use \`search_memories\` to find relevant context \u2014 past decisions, conventions, known issues, and domain knowledge. This avoids repeating mistakes and ensures consistency with previous choices.
|
|
2243
|
-
|
|
2244
|
-
**After completing a task**, if you discovered something valuable (a decision, a gotcha, a convention, domain insight), use \`add_memory\` to capture it for the team.
|
|
2245
|
-
|
|
2246
|
-
Available tools: \`search_memories\`, \`get_memory\`, \`add_memory\`, \`list_memories\`, \`archive_memory\`, \`remove_memory\`.`);
|
|
2296
|
+
sections.push(buildMemorySection(config));
|
|
2297
|
+
}
|
|
2298
|
+
if (config.workflow?.fact_checker) {
|
|
2299
|
+
sections.push(buildFetchCheckerSection());
|
|
2247
2300
|
}
|
|
2248
2301
|
const designSectionKiro = buildDesignSection(config);
|
|
2249
2302
|
if (designSectionKiro) sections.push(designSectionKiro);
|
|
@@ -2429,16 +2482,10 @@ ${prompt.sections.after_delivery.trim()}`);
|
|
|
2429
2482
|
sections.push(mcpToolsSectionCursor);
|
|
2430
2483
|
}
|
|
2431
2484
|
if (config.memory) {
|
|
2432
|
-
sections.push(
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
**Before starting any task**, use \`search_memories\` to find relevant context \u2014 past decisions, conventions, known issues, and domain knowledge. This avoids repeating mistakes and ensures consistency with previous choices.
|
|
2438
|
-
|
|
2439
|
-
**After completing a task**, if you discovered something valuable (a decision, a gotcha, a convention, domain insight), use \`add_memory\` to capture it for the team.
|
|
2440
|
-
|
|
2441
|
-
Available tools: \`search_memories\`, \`get_memory\`, \`add_memory\`, \`list_memories\`, \`archive_memory\`, \`remove_memory\`.`);
|
|
2485
|
+
sections.push(buildMemorySection(config));
|
|
2486
|
+
}
|
|
2487
|
+
if (config.workflow?.fact_checker) {
|
|
2488
|
+
sections.push(buildFetchCheckerSection());
|
|
2442
2489
|
}
|
|
2443
2490
|
const designSectionCursor = buildDesignSection(config);
|
|
2444
2491
|
if (designSectionCursor) sections.push(designSectionCursor);
|
package/dist/config/index.d.ts
CHANGED
|
@@ -115,6 +115,7 @@ interface MemoryConfig {
|
|
|
115
115
|
categories?: string[];
|
|
116
116
|
auto_capture?: boolean;
|
|
117
117
|
embedding_model?: string;
|
|
118
|
+
enforce?: boolean;
|
|
118
119
|
}
|
|
119
120
|
interface RemoteSource {
|
|
120
121
|
name: string;
|
|
@@ -163,6 +164,7 @@ interface HubConfig {
|
|
|
163
164
|
pipeline?: WorkflowStep[];
|
|
164
165
|
prompt?: PromptCustomization;
|
|
165
166
|
enforce_workflow?: boolean;
|
|
167
|
+
fact_checker?: boolean;
|
|
166
168
|
};
|
|
167
169
|
}
|
|
168
170
|
|
package/dist/index.js
CHANGED