| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Fix causal and explain skill API examples | 6 个月前 | |
fix(plugins): resolve Qodo-flagged bugs in rewritten skill examples Addresses all 7 findings from the automated review on this PR: - ontology: OntologyEngine() has no store configured, so list_concepts/list_vocabularies always raise ProcessingError; construct it with a TripletStore - ontology: ValidationResult's field is `valid`, not `is_valid` - change: state_at()["nodes"] is a list of dicts, so set(...) on it raises TypeError: unhashable type: 'dict' — diff by node id instead - provenance/change: storage_path is passed to sqlite3.connect() unexpanded, so a literal "~/.semantica/prov.db" fails to open — expanduser + mkdir - change/query: load_from_file() checks the literal path, so "~/..." never resolves and the graph loads empty — expanduser before calling - query: QueryEngine.execute_query requires an object exposing execute_sparql(); the TripletStore wrapper doesn't expose that, only the raw backend (e.g. OxigraphStore) does - query: the Cypher example constructed Neo4jStore but never called execute_query() Co-Authored-By: gyro <zhuffwct@gmail.com> Co-Authored-By: KaifAhmad1 <mohammadk78600@gmail.com> | 1 个月前 | |
fix(plugins): repair CP1252 bytes in the decision skill Two em dashes were stored as the raw CP1252 byte 0x97 rather than UTF-8, so the file is not valid UTF-8. Strict UTF-8 readers fail on it, and lenient ones render the frontmatter description as "Semantica <?> record". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 个月前 | |
Fix plugin hooks JSON, align Skill docs with repo API, and make skill generation portable | 6 个月前 | |
Add Claude Skill support, plugin manifests, and plugin folder updates | 6 个月前 | |
Fix causal and explain skill API examples | 6 个月前 | |
Fix plugin hooks JSON, align Skill docs with repo API, and make skill generation portable | 6 个月前 | |
fix(plugins): correct the extraction cache import in extract and validate Both skills instruct the agent to clear the result cache via `from semantica.semantic_extract.cache import _result_cache`, but the module exports the `ExtractionCache` singleton as `extraction_cache`. The private name never existed, so the first step of both skills raises ImportError. `extraction_cache.clear()` is the equivalent call. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 个月前 | |
Fix plugin hooks JSON, align Skill docs with repo API, and make skill generation portable | 6 个月前 | |
fix(plugins): resolve Qodo-flagged bugs in rewritten skill examples Addresses all 7 findings from the automated review on this PR: - ontology: OntologyEngine() has no store configured, so list_concepts/list_vocabularies always raise ProcessingError; construct it with a TripletStore - ontology: ValidationResult's field is `valid`, not `is_valid` - change: state_at()["nodes"] is a list of dicts, so set(...) on it raises TypeError: unhashable type: 'dict' — diff by node id instead - provenance/change: storage_path is passed to sqlite3.connect() unexpanded, so a literal "~/.semantica/prov.db" fails to open — expanduser + mkdir - change/query: load_from_file() checks the literal path, so "~/..." never resolves and the graph loads empty — expanduser before calling - query: QueryEngine.execute_query requires an object exposing execute_sparql(); the TripletStore wrapper doesn't expose that, only the raw backend (e.g. OxigraphStore) does - query: the Cypher example constructed Neo4jStore but never called execute_query() Co-Authored-By: gyro <zhuffwct@gmail.com> Co-Authored-By: KaifAhmad1 <mohammadk78600@gmail.com> | 1 个月前 | |
fix(plugins): rewrite five skills against the real v0.7.0 API The ontology, policy, provenance, change and query skills documented classes and methods that do not exist in the package. Every import in them fails, so following the skill produces ImportError or AttributeError immediately: | Documented | Reality in 0.7.0 | | --- | --- | | `semantica.policy.PolicyEngine` | no `semantica.policy` module; `PolicyEngine` is in `semantica.context` | | `semantica.query.QueryEngine` | no `semantica.query` module; `QueryEngine` is in `semantica.triplet_store` | | `semantica.ontology.OntologyManager` | no such class; use `OntologyEngine` / `OntologyValidator` | | `semantica.provenance.ProvenanceTracer` | no such class; use `ProvenanceManager` | | `semantica.provenance.change_tracker.ChangeTracker` | no such module; ontology versioning lives in `semantica.change_management` | The method names were wrong too, so a path-only fix was not possible: `.check()`, `.list_rules()`, `.trace_node()`, `.get_audit_log()`, `.compute_diff()`, `.get_node_history()`, `.query_sparql()`, `.query_cypher()` and `.search()` do not exist on any of the real classes. Each skill is rewritten against signatures verified by introspection on an installed 0.7.0. Two notes on scope: - policy now leads with `ContextGraph.check_decision_rules()` / `enforce_decision_policy()`, which need no graph store, and keeps `context.PolicyEngine` as the managed-policy path. - change previously conflated graph-state-over-time with ontology versioning. These are separate mechanisms in 0.7.0, so the skill now documents `ContextGraph.state_at()` and `change_management.VersionManager` separately. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 个月前 | |
fix(plugins): resolve Qodo-flagged bugs in rewritten skill examples Addresses all 7 findings from the automated review on this PR: - ontology: OntologyEngine() has no store configured, so list_concepts/list_vocabularies always raise ProcessingError; construct it with a TripletStore - ontology: ValidationResult's field is `valid`, not `is_valid` - change: state_at()["nodes"] is a list of dicts, so set(...) on it raises TypeError: unhashable type: 'dict' — diff by node id instead - provenance/change: storage_path is passed to sqlite3.connect() unexpanded, so a literal "~/.semantica/prov.db" fails to open — expanduser + mkdir - change/query: load_from_file() checks the literal path, so "~/..." never resolves and the graph loads empty — expanduser before calling - query: QueryEngine.execute_query requires an object exposing execute_sparql(); the TripletStore wrapper doesn't expose that, only the raw backend (e.g. OxigraphStore) does - query: the Cypher example constructed Neo4jStore but never called execute_query() Co-Authored-By: gyro <zhuffwct@gmail.com> Co-Authored-By: KaifAhmad1 <mohammadk78600@gmail.com> | 1 个月前 | |
fix(plugins): resolve Qodo-flagged bugs in rewritten skill examples Addresses all 7 findings from the automated review on this PR: - ontology: OntologyEngine() has no store configured, so list_concepts/list_vocabularies always raise ProcessingError; construct it with a TripletStore - ontology: ValidationResult's field is `valid`, not `is_valid` - change: state_at()["nodes"] is a list of dicts, so set(...) on it raises TypeError: unhashable type: 'dict' — diff by node id instead - provenance/change: storage_path is passed to sqlite3.connect() unexpanded, so a literal "~/.semantica/prov.db" fails to open — expanduser + mkdir - change/query: load_from_file() checks the literal path, so "~/..." never resolves and the graph loads empty — expanduser before calling - query: QueryEngine.execute_query requires an object exposing execute_sparql(); the TripletStore wrapper doesn't expose that, only the raw backend (e.g. OxigraphStore) does - query: the Cypher example constructed Neo4jStore but never called execute_query() Co-Authored-By: gyro <zhuffwct@gmail.com> Co-Authored-By: KaifAhmad1 <mohammadk78600@gmail.com> | 1 个月前 | |
Add Claude Skill support, plugin manifests, and plugin folder updates | 6 个月前 | |
Add Claude Skill support, plugin manifests, and plugin folder updates | 6 个月前 | |
fix(plugins): correct the extraction cache import in extract and validate Both skills instruct the agent to clear the result cache via `from semantica.semantic_extract.cache import _result_cache`, but the module exports the `ExtractionCache` singleton as `extraction_cache`. The private name never existed, so the first step of both skills raises ImportError. `extraction_cache.clear()` is the equivalent call. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 个月前 | |
fix(kg): keep the PageRank vector normalised when nodes are dropped (#1770) * fix(kg): keep the PageRank vector normalised when nodes are dropped Weight was spread over every neighbour and the filtered-out ones still counted in the denominator, and a node with no outgoing edge inside the current set had an empty column, so part of the mass was never redistributed and the scores drifted below 1 (#1759). Spread weight over the retained neighbours only, and treat nodes with no retained neighbour as dangling so their mass is redistributed uniformly, which is what standard PageRank does. * fix(kg): raise PageRank default max_iterations to 100 The norm-preserving iteration removed the mass leak that used to make a directed graph with sink nodes false-converge in a handful of steps. With the leak gone, the old default of 20 is no longer enough: at tolerance=1e-6 a 10-node directed chain needs ~33 steps and a 10-leaf directed star ~85, so callers silently got per-node values short of the fixed point behind a logger.warning. Raise the default for CentralityCalculator.calculate_pagerank and the calculate_pagerank wrapper, document why 20 is not enough, and bump the visualize skill that hard-coded 20. * test(kg): pin PageRank fixed-point values and default convergence The relationship_types regression test only asserted that the scores sum to 1, which a wrong-but-normalised result passes. Add the value oracle for the knows-filtered case (alice = bob = 0.4651, acme = 0.0698 at d=0.85) and a test that a 10-node directed chain reaches the networkx fixed point on the default cap, which the old default of 20 never did (#1770 review). --------- Co-authored-by: pkupt <5616973+pkupt@users.noreply.github.com> Co-authored-by: Sameer Kadam <sskadam6305@gmail.com> | 22 天前 |