⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.
Artifacts
Specs
Tasks
1.1 Add GraphEntity schema to lib/Settings/hermiq_register.json (slug
1.2 Add GraphRelation schema (slug graphrelation): required subject,
1.3 Add Agent.graphEnabled (bool, default false).
1.4 Bump register info.version 0.26.0 → 0.27.0.
2.1 Create lib/Service/Graph/GraphService.php (SPDX docblock, @spec tags):
2.2 Visibility check per sourceType, running as the acting user: object via
2.3 `neighbors(string $entityUuid, string $actingUserId, int $depth, array
2.4 `path(string $fromUuid, string $toUuid, string $actingUserId, int
3.1 Create lib/BackgroundJob/GraphExtractionJob.php (QueuedJob, pure wrapper like
3.2 Source readers: OpenRegister objects (ObjectService), files
3.3 Entity/relation proposal via the existing LLM provider layer
3.4 Enqueue points: manual (per register/schema selection), and incremental on
4.1 ContextRetrievalHandler::retrieveContext(): add the graph mode branch —
4.2 Degradation: empty graph / no seeds / GraphService failure falls through to
5.1 Register hermiq.graphNeighbors ({entity, depth?, predicates?}) and
5.2 Verify both tools flow through the grant-filtered, default-denied resolved
6.1 Unit tests (php:8.3-cli, the CI way): GraphServiceTest (upsert/resolution
6.2 Fresh containerized PHPUnit run vs. the current baseline — report both
6.3 openspec validate knowledge-graph --strict; phpcs/psalm/phpstan clean;
Design
See design.md for technical design details.
Synced from openspec/changes/knowledge-graph by OpenSpec workflow
App: hermiq
Artifacts
Specs
Tasks
GraphEntityschema tolib/Settings/hermiq_register.json(slugGraphRelationschema (sluggraphrelation): requiredsubject,Agent.graphEnabled(bool, default false).info.version0.26.0 → 0.27.0.lib/Service/Graph/GraphService.php(SPDX docblock,@spectags):sourceType, running as the acting user:objectvialib/BackgroundJob/GraphExtractionJob.php(QueuedJob, pure wrapper likeObjectService), filesContextRetrievalHandler::retrieveContext(): add thegraphmode branch —hermiq.graphNeighbors({entity, depth?, predicates?}) andGraphServiceTest(upsert/resolutionopenspec validate knowledge-graph --strict; phpcs/psalm/phpstan clean;Design
See design.md for technical design details.
Synced from
openspec/changes/knowledge-graphby OpenSpec workflowApp:
hermiq