Created: 2025-11-10 Priority Levels: Critical, High, Medium, Low Total Items: 15 fixes needed
Location: /docs/systems/circulatory/README.md (Lines 348-376)
Issue: Class doesn't exist in codebase
Current Text:
### 5. Fire-and-Forget
Asynchronous one-way messages:
```typescript
import { FireAndForget } from '@synapse-framework/core';
const fireAndForget = new FireAndForget(heart);
// Send message without waiting for confirmation
fireAndForget.send('analytics.track', {
event: 'user.login',
userId: '123',
timestamp: new Date()
});
// ... more code
**Solution A (Remove if not implemented)**:
Delete lines 348-376 entirely, OR move to "Planned Features" section
**Solution B (Implement if planned)**:
Create `/src/circulatory/patterns/FireAndForget.ts` with implementation
**Recommendation**: Solution B - feature seems useful and well-designed. Implement it to match documentation.
---
## HIGH PRIORITY (Fix This Week)
### FIX-2: Astrocyte Parameter Names
**Location**: `/docs/getting-started/first-app.md` (Lines 143-155)
**Issue**: Parameter names don't match actual code
**File Affected**: `/src/glial/Astrocyte.ts`
**Current (Wrong)**:
```typescript
this.userStore = new Astrocyte({
id: 'user-store',
maxSize: 1000,
defaultTTL: 3600000, // 1 hour
});
this.sessionStore = new Astrocyte({
id: 'session-store',
maxSize: 500,
defaultTTL: 1800000, // 30 minutes
});
Corrected (Right):
this.userStore = new Astrocyte({
id: 'user-store',
cacheSize: 1000, // Changed from maxSize
ttl: 3600000, // Changed from defaultTTL (1 hour)
});
this.sessionStore = new Astrocyte({
id: 'session-store',
cacheSize: 500, // Changed from maxSize
ttl: 1800000, // Changed from defaultTTL (30 minutes)
});Action: Update both occurrences in the tutorial file
Location: /docs/systems/circulatory/README.md (Line 382-389)
Issue: BloodCell is used but not imported
Current:
import { Heart, PublishSubscribe, RequestResponse } from '@synapse-framework/core';Corrected:
import {
Heart,
PublishSubscribe,
RequestResponse,
BloodCell // ADD THIS
} from '@synapse-framework/core';Section Affected: "Quick Start" section
Location: /docs/systems/circulatory/README.md (Lines 676-711)
Issue: API Reference is incomplete, missing several documented methods
Current API Reference:
class Heart {
constructor(options?: HeartOptions);
// Publishing
publish(topic: string, cell: BloodCell, options?: PublishOptions): Promise<void>;
// Subscribing
subscribe(topic: string, callback: (cell: BloodCell) => void): () => void;
// Management
acknowledge(cell: BloodCell): void;
getStatistics(): HeartStatistics;
getQueueSize(): number;
// Event handlers
onDeadLetter(handler: (cell: BloodCell) => void): void;
onAcknowledge(handler: (cell: BloodCell) => void): void;
}What to Add:
- Document
HeartOptionsinterface:
interface HeartOptions {
persistence?: boolean; // Enable message persistence
maxQueueSize?: number; // Maximum queue capacity (default: 10000)
}-
Document
PublishOptionsinterface -
Document
HeartStatisticsinterface:
interface HeartStatistics {
published: number;
delivered: number;
failed: number;
deadLettered: number;
}- Document all return types and exceptions
Location: /docs/systems/SYSTEMS_OVERVIEW.md (Lines 160-165)
Issue: Constructor signature needs verification against actual code
Current Example:
const pipeline = new MuscleGroup('csv-pipeline', [
parseCSV,
new FilterMuscle(validateRow),
new MapMuscle(transformRow),
]);Action Required:
- Check actual
/src/muscular/core/MuscleGroup.tsconstructor - Verify parameter order and types
- Update docs to match actual signature
- Check if FilterMuscle and MapMuscle constructors shown correctly
Expected Result: Verified code example that works
Location: /docs/getting-started/first-app.md (Lines 254-259)
Issue: Methods may not exist as shown
Code in Question:
public getStats() {
return {
totalUsers: this.userStore.getKeysByPattern('user:*').length,
activeSessions: this.sessionStore.getKeysByPattern('session:*').length,
userStoreStats: this.userStore.getStatistics(),
sessionStoreStats: this.sessionStore.getStatistics(),
};
}Verification Needed:
- Does
Astrocyte.getKeysByPattern()exist? - Does
Astrocyte.getStatistics()exist? - What are the correct method names?
- Update example with correct methods
Source to Check: /src/glial/Astrocyte.ts
Location: /docs/systems/SYSTEMS_OVERVIEW.md
Missing Imports in Examples:
Line 143:
// Add this line:
import { Muscle } from '@synapse-framework/core';
const parseCSV = new Muscle('parseCSV', (csv: string) => {
return csv.split('\n').map(line => line.split(','));
});Line 185:
// Add this line:
import { WebSocketAdapter } from '@synapse-framework/core';
const ws = new WebSocketAdapter({
port: 3000,
path: '/ws',
});Location: /docs/systems/immune/README.md (Lines 523-541)
Issue: Return structure needs verification
Code to Verify:
const result = sanitizer.sanitize({
name: '<script>alert("xss")</script>',
email: 'user@example.com',
query: "'; DROP TABLE users; --",
path: '../../../etc/passwd',
});
if (result.safe) {
console.log('Clean input:', result.sanitized);
} else {
console.log('Threats found:', result.threats);
}Action Required:
- Check actual
Macrophage.sanitize()implementation - Verify return object structure:
- Does it have
.safeproperty? - Does it have
.sanitizedproperty? - Does it have
.threatsproperty?
- Does it have
- Update if structure differs
Source to Check: /src/immune/sanitization/Macrophage.ts
Location: /docs/systems/circulatory/README.md (Lines 53-56)
Issue: Configuration options not fully documented
Add Documentation For:
interface HeartOptions {
// Default: false
persistence?: boolean;
// Default: 10000
maxQueueSize?: number;
// Determine what these do:
// - What happens when persistence is true vs false?
// - How are messages stored?
// - Is there cleanup of old messages?
// - What errors can occur?
}Required Additions:
- Default values
- Behavioral implications of each option
- When to use each setting
- Example configurations
Location: /docs/testing/TESTING_GUIDE.md (Lines 64-70)
Issue: Example lacks type information
Current:
lab.experiment('should work', async () => {
const component = stage.getComponent('my-component');
const result = await component.process({ data: 'test' });
Hypothesis.expect(result.success).toBe(true);
});Enhanced with Types:
lab.experiment('should work', async () => {
const component = stage.getComponent<MyComponent>('my-component');
const result: ProcessResult = await component.process({ data: 'test' });
Hypothesis.expect(result.success).toBe(true);
});Action: Add type annotations to all Theater System examples
Location: /docs/systems/immune/README.md (Lines 50-59)
Issue: TCell configuration needs more details
Current:
const auth = new TCell({
id: 'authenticator',
algorithm: 'HS256', // JWT algorithm
secretKey: process.env.SECRET,// Secret for signing
expiresIn: '1h', // Token expiration
refreshEnabled: true, // Allow token refresh
});Add Documentation For:
- What JWT algorithms are supported?
- What is the format of
expiresIn? - What happens when
refreshEnabledis false? - Are there other configuration options?
- What are the defaults?
Location: /docs/systems/immune/README.md (Lines 379-391)
Issue: Authorization example missing context
Current Example:
// Assign role to user
authz.assignRole('user-123', 'author');
// Assign multiple roles
authz.assignRole('user-456', 'admin');
authz.assignRole('user-456', 'author');
// Remove role
authz.revokeRole('user-123', 'author');Add Documentation For:
- How does BCell track role assignments internally?
- What happens if assigning a role that doesn't exist?
- How are role assignments persisted?
- Can you query user's current roles?
- What are the error conditions?
Location: /docs/core-concepts/neuromorphic-architecture.md (Lines 316-322)
Issue: Vague strength interpretation
Current:
- **0.0 - 0.3**: Weak signal (suggestions, hints)
- **0.4 - 0.6**: Moderate signal (normal operation)
- **0.7 - 0.9**: Strong signal (important data)
- **1.0**: Critical signal (emergencies, errors)
Add Clarification:
- What happens if strength > 1.0?
- What happens if strength < 0.0?
- Is it automatically clamped?
- How does signal type affect interpretation?
- Give concrete examples
Location: /docs/core-concepts/neuromorphic-architecture.md (Lines 217-227)
Issue: Connection type behaviors not explained
Current:
1. **Excitatory** - Promotes activation (positive signal)
2. **Inhibitory** - Prevents activation (negative signal)
3. **Modulatory** - Adjusts sensitivity (modifies threshold)
Add Documentation:
- How does each type affect signal strength?
- Do they modify the signal's strength value?
- How do they interact with threshold calculations?
- Can a single neuron have all three connection types?
- Example with concrete numbers
Location: Multiple files Issue: Inconsistent naming across documentation
Examples of Inconsistency:
maxSizevscacheSizevssizedefaultTTLvsttlvsTTLdarkModevsdarkvsthemesecretKeyvssecretvskey
Create Standard:
- Establish naming conventions
- Apply consistently across all docs
- Add glossary of standard term names
- Update all examples
- FIX-1: FireAndForget decision made
- FIX-2: Astrocyte parameters updated
- FIX-3: BloodCell import added
- FIX-4: Heart API Reference completed
- FIX-5: MuscleGroup verified
- FIX-6: Astrocyte methods verified
- FIX-7: Missing imports added
- FIX-8: Macrophage return type verified
- FIX-9: Configuration defaults documented
- FIX-10: Type annotations added
- FIX-11: TCell behavior documented
- FIX-12: BCell context added
- FIX-13: Signal strength clarified
- FIX-14: Connection types documented
- FIX-15: Parameters standardized
- All code examples compile
- All imports are valid
- All method calls exist
- All parameter names are correct
- All type annotations are accurate
- Cross-references work
- Examples run without errors
- FIX-1: Resolve FireAndForget
- FIX-2: Fix Astrocyte parameters
- FIX-3: Add BloodCell import
- FIX-4: Complete Heart API reference
- FIX-5: Verify MuscleGroup
- FIX-6: Verify Astrocyte methods
- FIX-7: Add missing imports
- FIX-8: Verify Macrophage
- FIX-9: Document configuration
- FIX-10: Add type annotations
- FIX-11: Document TCell
- FIX-12: Add BCell context
- FIX-13: Clarify signals
- FIX-14: Document connections
- FIX-15: Standardize naming
Create test file /verify-docs.ts to validate examples:
import {
Heart, PublishSubscribe, RequestResponse,
TCell, BCell, Macrophage, Antibody,
CorticalNeuron, ReflexNeuron,
Astrocyte, Bone,
Stage, Laboratory, Hypothesis
} from '@synapse-framework/core';
// Test 1: Astrocyte parameters
const astrocyte = new Astrocyte({
id: 'test',
cacheSize: 1000, // Verify this works
ttl: 60000 // Verify this works
});
// Test 2: BloodCell import
const cell = new BloodCell({ test: 'data' }, {
type: 'Test'
});
// Test 3: Heart configuration
const heart = new Heart({
persistence: true,
maxQueueSize: 10000
});
// Add more tests for each fix...- Priority: Follow the priority levels - don't do all at once
- Testing: Test every fix with actual code after updating docs
- Review: Have another person review changes
- Communication: Note the issue being fixed in commit message
- Tracking: Use issue tracker to track fix progress
- Verification: Re-run documentation tests after each fix
Total Estimated Effort: 20-30 hours Recommended Timeline: 2-3 sprints Owner: Documentation Team Reviewers: Framework Team + Community
For detailed information on each issue, see /DOCUMENTATION_ISSUE_LOG.md