Compare commits

..

3 Commits

2 changed files with 69 additions and 42 deletions

View File

@@ -41,12 +41,12 @@
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "claude.md", "file": "implementation.md",
"mode": "source", "mode": "source",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "claude" "title": "implementation"
} }
}, },
{ {
@@ -213,18 +213,24 @@
}, },
"active": "41ed24ce492fd06e", "active": "41ed24ce492fd06e",
"lastOpenFiles": [ "lastOpenFiles": [
"legacy/CCNetLogReader/CCNetControls/obj/Debug/TempPE",
"legacy/CCNetLogReader/CCNetControls/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache",
"legacy/CCNetLogReader/CCNetControls/obj/Debug/CCNetControls.csproj.FileListAbsolute.txt",
"legacy/CCNetLogReader/CCNetControls/obj/Debug",
"legacy/CCNetLogReader/CCNetControls/bin/Debug",
"legacy/CCNetLogReader/CCNetControls/Properties/AssemblyInfo.cs",
"legacy/CCNetLogReader/CCNetControls/obj",
"legacy/CCNetLogReader/CCNetControls/bin",
"legacy/CCNetLogReader/CCNetControls/Properties",
"legacy/CCNetLogReader/CCNetControls/ManuscriptLogin.resx",
"legacy/CCNetLogReader/CCNetControls/ManuscriptLogin.cs",
"claude.md",
"implementation.md", "implementation.md",
"statement-of-work.md", "statement-of-work.md",
"executive-summary.md", "executive-summary.md",
"prompt.md", "prompt.md",
"README.og.md", "README.og.md",
"ai/instructions.md", "ai/instructions.md",
"worktrees", "ai/roles.md"
"claude.md",
"ai/roles.md",
"ai",
"git-commit-all.sh",
"git-commit.sh",
"git-add.sh"
] ]
} }

View File

@@ -170,6 +170,7 @@ graph TB
- **Purpose**: Orchestrate complete publishing workflows - **Purpose**: Orchestrate complete publishing workflows
- **Technology**: ASP.NET Core + Hangfire - **Technology**: ASP.NET Core + Hangfire
- **Responsibilities**: - **Responsibilities**:
- Package creation from successful builds
- Coordinate document generation - Coordinate document generation
- Manage cloud uploads - Manage cloud uploads
- Update help center articles - Update help center articles
@@ -188,6 +189,19 @@ erDiagram
datetime LastLogin datetime LastLogin
} }
Packages {
int Id PK
string Name
string Version
string Description
int SourceBuildId FK
json CloudStorageConfig
json HelpCenterConfig
string Status
datetime CreatedAt
datetime UpdatedAt
}
Projects { Projects {
int Id PK int Id PK
string Name string Name
@@ -206,24 +220,16 @@ erDiagram
datetime StartTime datetime StartTime
datetime EndTime datetime EndTime
string LogPath string LogPath
} string ArtifactPath
Packages {
int Id PK
string Name
int ProjectId FK
json CloudStorageConfig
json HelpCenterConfig
datetime CreatedAt
} }
Publications { Publications {
int Id PK int Id PK
int PackageId FK int PackageId FK
string Version
string Status string Status
datetime PublishedAt datetime PublishedAt
string ReleaseNotesPath string ReleaseNotesPath
json PublicationDetails
} }
StorageProviders { StorageProviders {
@@ -242,24 +248,24 @@ erDiagram
boolean IsActive boolean IsActive
} }
Projects ||--o{ Builds : "has builds" Projects ||--o{ Builds : "produces builds"
Projects ||--o{ Packages : "has packages" Builds ||--o| Packages : "creates package"
Packages ||--o{ Publications : "has publications" Packages ||--o{ Publications : "has publications"
``` ```
#### Core Entities #### Core Entities
```sql ```sql
-- Packages: Top-level finalized software releases
Packages (Id, Name, Version, Description, SourceBuildId, CloudStorageConfig, HelpCenterConfig, Status, CreatedAt, UpdatedAt)
-- Projects from CruiseControl.NET -- Projects from CruiseControl.NET
Projects (Id, Name, Description, CCNetProjectName, Status, CreatedAt, UpdatedAt) Projects (Id, Name, Description, CCNetProjectName, Status, CreatedAt, UpdatedAt)
-- Build information -- Build information
Builds (Id, ProjectId, BuildNumber, Status, StartTime, EndTime, LogPath) Builds (Id, ProjectId, BuildNumber, Status, StartTime, EndTime, LogPath, ArtifactPath)
-- Software packages configuration
Packages (Id, Name, ProjectId, CloudStorageConfig, HelpCenterConfig, CreatedAt)
-- Publishing history -- Publishing history
Publications (Id, PackageId, Version, Status, PublishedAt, ReleaseNotesPath) Publications (Id, PackageId, Status, PublishedAt, ReleaseNotesPath, PublicationDetails)
-- User management -- User management
Users (Id, Username, PasswordHash, Role, CreatedAt, LastLogin) Users (Id, Username, PasswordHash, Role, CreatedAt, LastLogin)
@@ -477,6 +483,14 @@ sequenceDiagram
participant HF as Hangfire participant HF as Hangfire
participant SH as SignalR Hub participant SH as SignalR Hub
Note over User,UI: Package Creation Phase
User->>UI: Select Build & Create Package
UI->>GW: POST /api/packages/create-from-build
GW->>PUB: Create Package from Build
PUB->>SH: Package Created Notification
SH->>UI: Real-time Package Status
Note over User,UI: Publishing Phase
User->>UI: Select Package & Initiate Publishing User->>UI: Select Package & Initiate Publishing
UI->>GW: POST /api/publish/package/{id} UI->>GW: POST /api/publish/package/{id}
GW->>PUB: Queue Publishing Job GW->>PUB: Queue Publishing Job
@@ -494,14 +508,14 @@ sequenceDiagram
HELP-->>HF: Articles Updated HELP-->>HF: Articles Updated
HF->>SH: Notify Completion HF->>SH: Notify Completion
SH->>UI: Real-time Status Update SH->>UI: Real-time Publication Status
UI->>User: Show Completion Status UI->>User: Show Completion Status
``` ```
## Data Flow Architecture ## Data Flow Architecture
```mermaid ```mermaid
flowchart LR flowchart TD
subgraph "External Sources" subgraph "External Sources"
CC[CruiseControl.NET<br/>Build Logs] CC[CruiseControl.NET<br/>Build Logs]
FB[FogBugz/Manuscript<br/>Developer Data] FB[FogBugz/Manuscript<br/>Developer Data]
@@ -512,13 +526,16 @@ flowchart LR
MS[Manuscript Service<br/>API Client] MS[Manuscript Service<br/>API Client]
end end
subgraph "Data Storage" subgraph "Core Data Model"
DB[(PostgreSQL<br/>Centralized Data)] PROJ[Projects<br/>CC.NET Projects]
BUILDS[Builds<br/>From Projects]
PKG[Packages<br/>Finalized Releases]
PUB_DATA[Publications<br/>Publishing History]
end end
subgraph "Processing Layer" subgraph "Processing Layer"
DS[Document Service<br/>PDF Generator] DS[Document Service<br/>PDF Generator]
PUB[Publishing Service<br/>Orchestrator] PUB[Publishing Service<br/>Package Creator & Orchestrator]
end end
subgraph "Output Channels" subgraph "Output Channels"
@@ -527,30 +544,34 @@ flowchart LR
end end
subgraph "User Interface" subgraph "User Interface"
UI[React Frontend<br/>Management Console] UI[React Frontend<br/>Package Management Console]
end end
CC --> PS CC --> PS
FB --> MS FB --> MS
PS --> DB PS --> PROJ
MS --> DB MS --> PROJ
DB --> DS PROJ --> BUILDS
DB --> PUB BUILDS --> PKG
DS --> STOR PKG --> PUB_DATA
UI --> PKG
PKG --> PUB
PUB --> DS
PUB --> STOR PUB --> STOR
PUB --> HELP PUB --> HELP
DB --> UI PUB --> PUB_DATA
classDef external fill:#ffebee classDef external fill:#ffebee
classDef ingestion fill:#e3f2fd classDef ingestion fill:#e3f2fd
classDef storage fill:#f3e5f5 classDef coredata fill:#e8f5e8
classDef processing fill:#e8f5e8 classDef processing fill:#fff3e0
classDef output fill:#fff3e0 classDef output fill:#f3e5f5
classDef ui fill:#fce4ec classDef ui fill:#fce4ec
class CC,FB external class CC,FB external
class PS,MS ingestion class PS,MS ingestion
class DB storage class PROJ,BUILDS,PKG,PUB_DATA coredata
class DS,PUB processing class DS,PUB processing
class STOR,HELP output class STOR,HELP output
class UI ui class UI ui