Skip to content

Latest commit

 

History

History
537 lines (443 loc) · 27.3 KB

File metadata and controls

537 lines (443 loc) · 27.3 KB

Pure Simulator — Change Log

This is an append-only changelog documenting all Copilot-assisted and manual changes to the repository.


2025-10-21 16:59:54 EDT — Initial Repository Plumbing Setup

Author: Copilot
Task: Task 1 — Repo plumbing: Changelog + Next Steps Editor tooling

Summary

Created foundational infrastructure for change tracking and task management within Unity Editor. This includes an append-only changelog, a JSON-based task tracking system, and Unity Editor tools for managing development tasks.

Files Created

  • /change log.MD — This append-only changelog file
  • /.copilot/next_steps.json — JSON array of task objects for tracking development work
  • /Assets/Editor/PureSimNextStepsWindow.cs — EditorWindow for viewing and managing tasks
  • /Assets/Editor/PureSimTasksMenu.cs — Code-generated menu items for quick task access

Acceptance Criteria

✅ Changelog file created with proper structure and initial entry
⏳ Next Steps JSON file created with task tracking schema
⏳ EditorWindow implemented for task management with UI features
⏳ Menu generation system implemented for Tools/PureSim menu

Test Plan

  • Manual verification: Open Unity Editor and verify Tools/PureSim menu exists
  • Verify EditorWindow opens and displays tasks from JSON file
  • Test task filtering, copying instructions, and stub creation features
  • Verify menu items update when tasks change status

References Used

  • Repository structure exploration
  • .github/copilot-instructions.md — Architecture guidance and coding standards
  • Unity 6 EditorWindow API documentation

Next Steps

  • Complete EditorWindow implementation
  • Implement menu code generation system
  • Begin Quake-Style Developer Console implementation

2025-10-21 17:30:00 EDT — Quake Console & Serial Command Infrastructure

Author: Copilot
Task: Task 2 & 3 — Quake Console + Serial Terminal Command Stubs

Summary

Implemented complete dual-console architecture with strict separation between simulator control (Quake console) and operational commands (Serial terminal). Created core simulation infrastructure, console command system with reflection-based discovery, and serial command stubs with authentic output mirrored from real Purity logs.

Files Created

Simulation Core:

  • /Assets/Scripts/Simulation/SimulationState.cs — Single source of truth for simulation state (USB, faults, power)
  • /Assets/Scripts/Simulation/WorkflowEngine.cs — Workflow step management with precondition guards

Console System (Simulator Control):

  • /Assets/Scripts/Console/IConsoleCommand.cs — Interface for console commands
  • /Assets/Scripts/Console/ConsoleCommandAttribute.cs — Attribute for command discovery
  • /Assets/Scripts/Console/IConsoleOutput.cs — Output interface
  • /Assets/Scripts/Console/ConsoleOutput.cs — Output implementation with color and tables
  • /Assets/Scripts/Console/ConsoleRegistry.cs — Reflection-based command discovery
  • /Assets/Scripts/Console/ConsoleController.cs — Main controller with input, history, autocomplete

Console Commands:

  • /Assets/Scripts/Console/Commands/HelpCommand.cs — List and describe commands
  • /Assets/Scripts/Console/Commands/JumpCommand.cs — Jump to workflow step with precondition validation
  • /Assets/Scripts/Console/Commands/StepsCommand.cs — List all workflow steps and status
  • /Assets/Scripts/Console/Commands/FaultsCommand.cs — List active faults
  • /Assets/Scripts/Console/Commands/InjectCommand.cs — Inject faults for testing
  • /Assets/Scripts/Console/Commands/ClearFaultCommand.cs — Clear faults
  • /Assets/Scripts/Console/Commands/UsbStateCommand.cs — Control USB insertion state
  • /Assets/Scripts/Console/Commands/ClearCommand.cs — Clear console output

Serial System (Operational Commands):

  • /Assets/Scripts/Serial/ISerialCommand.cs — Interface for serial commands
  • /Assets/Scripts/Serial/SerialCommandAttribute.cs — Attribute for command discovery
  • /Assets/Scripts/Serial/ISerialOutput.cs — Terminal output interface

Serial Commands:

  • /Assets/Scripts/Serial/Commands/LsblkCommand.cs — List block devices (ls /dev/sd*)
  • /Assets/Scripts/Serial/Commands/MountCommand.cs — Mount filesystems with error paths
  • /Assets/Scripts/Serial/Commands/UmountCommand.cs — Unmount filesystems

Tests:

  • /Assets/Tests/Editor/Console/ConsoleParserTests.cs — Unit tests for console parsing and registry
  • /Assets/Tests/Editor/ConsoleBoundaryTests.cs — Tests ensuring Console/Serial separation
  • /Assets/Tests/PlayMode/Serial/Golden_Lsblk_and_Mount.txt — Golden transcript for serial commands
  • /Assets/Tests/Editor/PureSim.Tests.Editor.asmdef — Editor test assembly
  • /Assets/Tests/PlayMode/PureSim.Tests.PlayMode.asmdef — PlayMode test assembly

Assembly Definitions:

  • /Assets/Scripts/PureSim.Runtime.asmdef — Main runtime assembly

Acceptance Criteria

✅ Dual console architecture implemented with strict separation
✅ Console commands control simulator only (no operational commands)
✅ Serial commands mirror real Purity output from logs/PDFs
✅ Reflection-based command discovery system working
✅ Console controller with history, autocomplete, and toggle support


2025-10-21 18:28:32 EDT — Hardware Model and Pure Storage CLI Commands Implementation

Author: Copilot
Task: Implement virtual console commands from installation/upgrade scripts

Summary

Implemented comprehensive hardware model representing Pure Storage FlashArray components and created 20 CLI commands for the virtual serial console. All commands reference actual Pure Storage logs and PDFs for authentic output. Hardware model includes controllers, drives, network ports, fans, power supplies, and temperature sensors, matching real FA-X70R3 configuration.

Files Created

Hardware Model:

  • /Assets/Scripts/Simulation/HardwareModel.cs — Complete hardware model with all Pure Storage components
    • Controllers (CT0, CT1) with mode, model, version
    • Drives (SSDs in CH0.BAY0-19, NVRAM in CH0.NVB0-3)
    • Ethernet Ports (CT*.ETH0-9) with speed, services, enabled state
    • FC Ports (CT*.FC0-9) with slot and speed
    • Fans (CT*.FAN0-5)
    • Power Supplies (CH0.PWR0-1) with voltage
    • Temperature Sensors (CT*.TMP0-26, CH0.TMP0)
    • Default initialization based on FA-X70R3 logs

Pure Storage Commands:

  • /Assets/Scripts/Serial/Commands/PureHwCommand.cs — purehw list command

    • Lists all hardware components with status, identify, speed, temperature, voltage
    • Supports --type filter for specific component types
    • Source: Docs/PuttyLogs/putty2025-03-03.log L46-192, Docs/purehw.pdf
  • /Assets/Scripts/Serial/Commands/PureDriveCommand.cs — puredrive list command

    • Lists drives with type, status, capacity
    • Source: Docs/PuttyLogs/putty2025-03-03.log, Docs/puredrive.pdf
  • /Assets/Scripts/Serial/Commands/PureArrayCommand.cs — purearray command

    • list --controller: Show controller info with mode, version
    • phonehome --send-today: Phonehome operations
    • remoteassist --connect: Remote assist connection
    • Source: Docs/PuttyLogs/putty2025-03-03.log L27-31, Docs/purearray.pdf
  • /Assets/Scripts/Serial/Commands/PureNetworkCommand.cs — purenetwork command

    • list: Show all network interfaces
    • eth list: Show Ethernet ports only
    • fc list: Show Fibre Channel ports
    • Source: Docs/PuttyLogs/putty2025-02-22-2.txt, Docs/Purenetwork.pdf
  • /Assets/Scripts/Serial/Commands/PureAlertCommand.cs — purealert command

    • tag --timeout --maintenance: Create maintenance window
    • Source: Docs/PuttyLogs/putty2025-02-22-2.txt L21-23
  • /Assets/Scripts/Serial/Commands/PureMessageCommand.cs — puremessage command

    • list --open: List open system messages
    • Integrates with fault injection system
  • /Assets/Scripts/Serial/Commands/PureSetupCommand.cs — puresetup command

    • show: Display current configuration
    • timezone: Set timezone
    • newarray --skip-connectivity-tests: Configure new array
    • secondaryarray --skip-connectivity-tests: Configure secondary
    • Source: commands.txt, Docs/getting_started PDF

Linux Utility Commands:

  • /Assets/Scripts/Serial/Commands/SudoCommand.cs — sudo command

    • Execute commands with root privileges
    • Handles sudo su for root shell
  • /Assets/Scripts/Serial/Commands/CatCommand.cs — cat command

    • Display file contents (/etc/timezone, /etc/purity-version, /proc/version)
  • /Assets/Scripts/Serial/Commands/ClearCommand.cs — clear command (renamed from ClearTerminalCommand)

    • Clear terminal screen with ANSI codes
  • /Assets/Scripts/Serial/Commands/ExitCommand.cs — exit/quit/logout commands

    • Exit current shell or session
  • /Assets/Scripts/Serial/Commands/SshCommand.cs — ssh command

    • Connect to remote hosts, special handling for ssh peer
  • /Assets/Scripts/Serial/Commands/PingCommand.cs — ping command

    • Send ICMP echo requests with -c count option
  • /Assets/Scripts/Serial/Commands/DfCommand.cs — df command

    • Report file system disk space usage with -h option
  • /Assets/Scripts/Serial/Commands/DmesgCommand.cs — dmesg command

    • Print kernel ring buffer messages
    • Shows USB insertion events when USB is inserted
  • /Assets/Scripts/Serial/Commands/SttyCommand.cs — stty command

    • Change terminal settings (rows, columns)

Diagnostic Scripts:

  • /Assets/Scripts/Serial/Commands/HardwareCheckCommand.cs — hardware_check.py script
    • System hardware verification showing CPU, RAM, FC/iSCSI ports, storage
    • Source: Docs/PuttyLogs/putty2025-03-03.log L194-218

Documentation:

  • /HARDWARE_MODEL_INTEGRATION.md — Complete guide on connecting hardware models to 3D GameObjects

    • Event-driven update patterns
    • Interactive component swapping (drives, SFPs, PCIe cards)
    • Hardware profiles for different array models
    • Drive specifications and version requirements
    • Port speed options for SFPs
  • /CLI_COMMANDS_IMPLEMENTATION.md — Implementation summary and status

    • All implemented commands documented
    • What's complete and what remains
    • Usage examples and testing guidance
    • Priority list for remaining work

Files Modified:

  • /Assets/Scripts/Simulation/SimulationState.cs — Added HardwareModel integration
    • Added hardwareModel field
    • Added GetHardwareModel() accessor

Acceptance Criteria

✅ Hardware model created with all Pure Storage component types
✅ Hardware model integrated with SimulationState
✅ 20 CLI commands implemented (7 Pure, 10 Linux, 3 scripts)
✅ All commands reference source logs/PDFs in code comments
✅ Commands output matches real Pure Storage log format
✅ Documentation created for hardware model integration
✅ Implementation summary document created with status

Test Plan

  • Manual testing: Run each command in virtual serial terminal and verify output
  • Verify purehw list shows all hardware components matching log format
  • Verify puredrive list shows drives with correct format
  • Verify purearray list --controller shows controller info
  • Verify purenetwork list shows network interfaces
  • Test all Linux utility commands (cat, df, ping, etc.)
  • Compare outputs to source logs in Docs/PuttyLogs/

References Used

  • Docs/PuttyLogs/putty2025-02-22-2.txt — Command usage and outputs
  • Docs/PuttyLogs/putty2025-03-03.log — Hardware listing outputs
  • Docs/purehw.pdf — Hardware command reference
  • Docs/puredrive.pdf — Drive management reference
  • Docs/purearray.pdf — Array command reference
  • Docs/Purenetwork.pdf — Network command reference
  • Docs/getting_started_with_flasharray_purity_user_info__puresetup_2025-10-21-17-16-39.pdf — Setup commands
  • commands.txt — Command list from repository root
  • .github/copilot-instructions.md — Coding standards and architecture

Commands Implemented

Pure Storage: purehw, puredrive, purearray, purenetwork, purealert, puremessage, puresetup
Linux Utilities: sudo, cat, clear, exit/quit/logout, ssh, ping, df, dmesg, stty
Scripts: hardware_check.py
Already Existing: ls/lsblk, mount, umount

Commands Not Yet Implemented

pureboot, pureversion, pureinstall, pureadm, pureeng, purewes, pureport, purevol, puredb, puretune, iobalance, storage_view.py, cobalt_check.py, and various Linux file operations (cp, mv, rm, mkdir, chmod, chown, ps, top, grep, awk, sed, tail, head)

Hardware Features Not Complete

  • Interactive PCIe card swapping UI and logic
  • Interactive SFP swapping UI and logic
  • Interactive drive installation/removal in 3D
  • Component visualizer scripts (ControllerVisualizer, DriveSlotVisualizer, etc.)
  • Hardware profiles for different array models (X70R3, X90R4, C60, etc.)

Next Steps

  1. Implement pureboot and pureversion commands (high priority for workflows)
  2. Create component visualizer scripts to connect hardware model to 3D GameObjects
  3. Implement interactive drive swapping in 3D
  4. Implement remaining pure* commands (pureinstall, pureadm, pureeng, pureport, purevol)
  5. Implement PCIe card and SFP swapping UI and logic
  6. Add more Linux utilities (file operations, text processing, process management)
  7. Implement diagnostic scripts (storage_view.py, cobalt_check.py)
  8. Create hardware profiles for different array models
    ✅ Workflow engine with step preconditions and jump guards
    ✅ USB state management integrated
    ✅ Fault injection system implemented
    ✅ Unit tests for console and boundary separation
    ✅ Golden transcript files created with real log citations
    ⏳ ConsoleOverlayUI prefab (requires Unity Editor)

Test Plan

  • Run Console unit tests in Unity Test Runner (Edit Mode)
  • Run boundary tests to verify Console/Serial separation
  • Test console command discovery finds all commands
  • Test console output formatting (plain text, tables, colors)
  • Test workflow step jumping with precondition validation
  • Test serial mount command with all error paths:
    • Success (clean mount)
    • Success (with unclean filesystem warning)
    • Error: USB not inserted
    • Error: Already mounted
    • Error: Wrong device path
    • Error: Not a block device

References Used

  • Docs/PuttyLogs/putty2025-02-18.log L648-653 — Device listing and mount commands
  • Docs/PuttyLogs/putty2025-02-18.log L2229, L4046 — Clean mount examples
  • Docs/PuttyLogs/putty2025-03-03.log — Additional device listing patterns
  • .github/copilot-instructions.md — Architecture and coding standards
  • Unity 6 EditorWindow and reflection APIs

Design Decisions

  1. Strict Interface Separation: IConsoleCommand vs ISerialCommand ensures no cross-contamination
  2. Reflection-Based Discovery: Commands auto-register via attributes, no manual registration needed
  3. Authentic Output: Serial commands mirror exact phrasing from real logs, including spacing and error messages
  4. Simulation State: Single source of truth pattern for all hardware/USB/fault state
  5. Precondition Guards: WorkflowEngine validates preconditions before allowing step jumps
  6. Quote Support: Console parser respects quotes for arguments with spaces

Known Limitations

  • ConsoleOverlayUI prefab needs to be created in Unity Editor (scripted approach not feasible for UI)
  • PlayMode golden transcript tests need custom test harness (deferred)
  • Some workflow preconditions are simplified stubs (e.g., firmware-applied, health-verified)

2025-10-21 19:26:25 EDT — Complete Missing Commands and PCIe Port Architecture Refactor

Author: Copilot
Task: Implement all missing commands from commands.txt and refactor port architecture to use PCIe card slots

Summary

Implemented 10 missing Pure Storage commands that were listed in commands.txt but not yet created. Refactored the hardware model to properly represent PCIe card slots (1, 2, 3) per controller, with each slot holding a 4-port card (FC or ETH). Built-in management and replication ports are now separate from PCIe card ports, matching the real Pure Storage FlashArray architecture.

Files Created

Pure Storage Commands:

  • /Assets/Scripts/Serial/Commands/PureBootCommand.cs — pureboot command

    • list: Show boot partitions with current (*) and next boot (-->) markers
    • reboot --primary/--secondary/--offline: Reboot to specific partition
    • Source: Docs/PuttyLogs/putty2025-03-03.log L299-304
  • /Assets/Scripts/Serial/Commands/PureVersionCommand.cs — pureversion command

    • list: Display installed Purity software versions
    • Shows current and alternate partition versions
    • Source: commands.txt
  • /Assets/Scripts/Serial/Commands/PureInstallCommand.cs — pureinstall command

    • Install Purity .ppkg packages to alternate partition
    • Shows installation progress and warnings about firmware updates
    • Source: Docs/PuttyLogs/putty2025-03-03.log L1201-1226
  • /Assets/Scripts/Serial/Commands/PureAdmCommand.cs — pureadm command

    • status: Show Purity service status (purity, lio-drv, foed, platform, gui, rest, etc.)
    • Source: Docs/PuttyLogs/putty2025-03-03.log L238-248
  • /Assets/Scripts/Serial/Commands/PureWesCommand.cs — purewes command

    • controller setattr --verify-array: Swap controller modes (primary/secondary)
    • Shows pre-check validation (peer status, port list, iobalance)
    • Updates controller mode in simulation state
    • Source: Docs/PuttyLogs/ny2pure04.log, commands.txt L7
  • /Assets/Scripts/Serial/Commands/PureDbCommand.cs — puredb command

    • prefer CT0|CT1: Set preferred controller for database operations
    • npiv status: Show NPIV status
    • Includes occasional XML-RPC errors for realism
    • Source: Docs/PuttyLogs/putty2025-03-03.log L1122-1196
  • /Assets/Scripts/Serial/Commands/IobalanceCommand.cs — iobalance command

    • --sampletime N: Monitor host I/O balance across controllers for N seconds
    • Shows which hosts have unbalanced I/O between CT0 and CT1
    • Source: Docs/PuttyLogs/putty2025-03-03.log L1136-1192
  • /Assets/Scripts/Serial/Commands/PureTuneCommand.cs — puretune command

    • --list: Display system tunables and their values from pureadm and puredb
    • Shows consistently and inconsistently set tunables
    • Source: Docs/PuttyLogs/putty2025-03-03.log L430-493
  • /Assets/Scripts/Serial/Commands/PurePortCommand.cs — pureport command

    • list: Show storage port connections with WWN, IQN, and target info
    • Referenced in Docs/PuttyLogs/ny2pure04.log in purewes checks
  • /Assets/Scripts/Serial/Commands/PureVolCommand.cs — purevol command

    • list: Display volumes
    • list --connect: Show volume connections to hosts with LUN numbers
    • Source: Docs/PuttyLogs/putty2025-03-03.log L428

Files Modified:

  • /Assets/Scripts/Simulation/HardwareModel.cs — Major refactor for PCIe card architecture

    • Added PCIeCard class to represent cards in slots 1, 2, 3
    • Added PCIeCardType enum (None, FibreChannel, Ethernet)
    • Added Slot field to EthernetPort (-1 for built-in, 1-3 for PCIe slot)
    • Refactored port initialization to use PCIe cards:
      • Built-in: ETH0 (management), ETH2-ETH3 (replication) - not on PCIe cards
      • Slot 1: 4-port card (FC0-FC3 or ETH4-ETH7)
      • Slot 2: 4-port card (FC4-FC7 or ETH8-ETH11)
      • Slot 3: 4-port card (FC8-FC11 or ETH12-ETH15)
    • Default configuration: 3 x 4-port FC cards per controller
    • Port naming matches real logs: FC0-3 on slot 1, FC4-7 on slot 2, FC8-11 on slot 3
  • /Assets/Scripts/Serial/Commands/PureNetworkCommand.cs — Updated for new architecture

    • HandleList() now shows FC ports first (uppercase), then ETH ports (lowercase)
    • Matches real purenetwork list output from logs
    • Source: Docs/PuttyLogs/putty2025-03-03.log

Acceptance Criteria

✅ All 10 missing commands implemented with authentic log-based output
✅ PCIe card architecture implemented with slots 1, 2, 3 per controller
✅ Built-in ports (management, replication) separate from PCIe card ports
✅ FC port numbering matches real logs (0-3, 4-7, 8-11 by slot)
✅ All commands reference source logs/PDFs in code comments
✅ purenetwork list updated to show both FC and ETH ports

Test Plan

  • Manual testing: Run each new command in virtual serial terminal
  • Verify pureboot list shows boot partitions with markers
  • Verify pureinstall shows installation progress
  • Verify pureadm status shows all Purity services
  • Verify purewes controller setattr runs pre-checks and updates mode
  • Verify puredb prefer CT0/CT1 sets preferred controller
  • Verify iobalance shows host I/O distribution
  • Verify puretune --list shows tunables
  • Verify pureport list shows port connections
  • Verify purevol list and list --connect show volumes
  • Verify purenetwork list shows FC ports before ETH ports
  • Verify purehw list still works with new PCIe card structure

References Used

  • Docs/PuttyLogs/putty2025-03-03.log — Boot commands, installation, pureadm, puredb, iobalance, puretune, purevol
  • Docs/PuttyLogs/ny2pure04.log — purewes controller setattr usage and output
  • commands.txt — List of tested commands to implement
  • .github/copilot-instructions.md — Architecture and coding standards
  • Real Pure Storage FlashArray configuration documentation

Design Decisions

  1. PCIe Card Model: Each controller has 3 PCIe slots, each can hold a 4-port card (FC or ETH)
  2. Built-in Ports: Management (ETH0) and replication (ETH2-3) are not on PCIe cards (Slot = -1)
  3. Port Numbering: FC0-3 on slot 1, FC4-7 on slot 2, FC8-11 on slot 3 matches real logs
  4. Command Output: All new commands mirror exact log format, spacing, and error messages
  5. pureeng Note: Not implemented as a command - it's a username for login, not a command to execute

Commands Status Summary

Implemented in this session:

  • pureboot, pureversion, pureinstall, pureadm, purewes, puredb, iobalance, puretune, pureport, purevol

Previously implemented:

  • purehw, puredrive, purearray, purenetwork, purealert, puremessage, puresetup
  • lsblk, mount, umount, sudo, cat, clear, exit/quit/logout, ssh, ping, df, dmesg, stty
  • hardware_check.py

Not yet implemented:

  • Linux file operations: cp, mv, rm, mkdir, chmod, chown
  • Linux process management: ps, top, kill
  • Linux text processing: grep, awk, sed, tail, head
  • Diagnostic scripts: storage_view.py, cobalt_check.py

Next Steps

  1. Test all new commands in Unity Editor
  2. Implement ability to swap PCIe cards (FC <-> ETH) via console command
  3. Update 3D visualizers to show PCIe card slots
  4. Implement remaining Linux utilities (file operations, text processing, process management)
  5. Implement remaining diagnostic scripts
  6. Create hardware profiles for different array models (X70R3, X90R4, C60)


2025-11-07 07:16:00 EST — Consolidation of Copilot Instruction Files

Author: Copilot
Task: Consolidate multiple Copilot instruction files into single authoritative source

Summary

Consolidated two separate Copilot instruction files (.github/copilot-instructions.md and .github/copilot-instructions-NEW.md) into a single comprehensive, authoritative instruction file. This consolidation addresses the issue of scattered instructions and provides clear, consistent guidance for future development.

The consolidated file integrates:

  • Comprehensive architectural guidance from the original file
  • Current implementation status and practical details from the NEW file
  • Documentation about the AI certification mode and training features
  • Clear emphasis on integrating with existing framework
  • Unified approach to change tracking and documentation

Files Changed

  • .github/copilot-instructions.md — Replaced with consolidated version (592 lines, comprehensive)
  • .github/copilot-instructions-ORIGINAL-BACKUP.md — Created backup of original instructions
  • .github/copilot-instructions-NEW-BACKUP.md — Created backup of NEW instructions
  • .gitignore — Added backup files to ignore list
  • CHANGELOG.md — This entry documenting the consolidation

Rationale

The repository had two instruction files with overlapping but different content:

  1. Original (copilot-instructions.md, 232 lines): Strong architectural foundation, dual console contracts, workflow guidance
  2. NEW (copilot-instructions-NEW.md, 290 lines): Implementation status, current file locations, practical workflows

This caused potential confusion and inconsistency. The consolidated version:

  • Merges the best aspects of both files
  • Starts with project overview and current implementation status (critical for AI agents)
  • Provides clear architectural guidance alongside practical implementation details
  • Emphasizes integration with existing framework per user requirements
  • References all documentation in Docs/ folder (15+ PDFs, Design.md, PuttyLogs)
  • Clarifies the AI certification mode and training features
  • Maintains CHANGELOG.md naming (not "change log.MD" as previously referenced)

Key Sections in Consolidated File

  1. Project Overview — Unity 6 simulator with AI certification mode
  2. Prime Directive — Always ground in authoritative resources (Docs/, PureResources/)
  3. Current Implementation Status — Clear state of dual console systems
  4. Dual Console Architecture — Strict separation rules with examples
  5. Architecture — Core simulation, hardware model, virtual filesystem
  6. Authoritative References — All documentation sources
  7. Developer Workflows — Step-by-step guidance for adding features
  8. Coding Standards — Unity 6, C# 10+, nullable enabled
  9. Change Tracking — CHANGELOG.md and Next Steps system
  10. Integration with Existing Framework — Emphasis per user requirements
  11. Common Pitfalls — Do's and don'ts
  12. Quick Command Lookup — Serial vs Console commands
  13. Key Files Reference — Must-read documentation
  14. Reference Interfaces — Canonical signatures
  15. Review Checklist — Quality gates
  16. Task Pattern — Template for feature implementation
  17. Getting Started — Practical guidance for common tasks

Test Plan

  • ✅ Verified consolidated file is comprehensive (592 lines vs 232+290)
  • ✅ Verified all key sections from both original files are present
  • ✅ Verified documentation references are complete (Docs/, PureResources/)
  • ✅ Verified AI certification mode and training features are mentioned
  • ✅ Verified emphasis on integrating with existing framework
  • ✅ Verified backup files created and added to .gitignore
  • Manual: Future Copilot interactions should reference the single authoritative file
  • Manual: Developers should find clearer guidance in consolidated version

Citations

  • .github/copilot-instructions.md (original) — Architectural foundation
  • .github/copilot-instructions-NEW.md — Implementation status and practical details
  • Docs/Design.md — Project architecture and AI certification mode
  • User request: "I want one authority file" and "focus on the instructions so that future requests are implemented correctly"

Impact

This consolidation provides:

  • Single source of truth for Copilot instructions
  • Clearer guidance combining architecture with implementation reality
  • Better integration with existing framework (per user requirements)
  • Complete documentation references for grounding in authoritative sources
  • Reduced confusion from having multiple instruction files
  • Foundation for consistent future development

Next Steps

The repository now has a single authoritative instruction file. Future tasks:

  • All Copilot-assisted changes should reference this consolidated file
  • All changes should continue to be documented in CHANGELOG.md
  • All new features should integrate with existing framework unless documented reason to change
  • All command outputs should be grounded in Docs/ and PureResources/ materials