3.0 KiB
3.0 KiB
Changelog: Article Creation Gates
Problem
The article pipeline could collect and persist strong research evidence but still create no staging article. Four independent behaviors amplified each other:
- model-generated topic labels such as
site:digital-forensicswere used as if they were real domains; - legacy
missing_informationand editorial refinements were promoted to critical blockers; - every article type used the same answer-length gate;
- several skip paths, especially deterministic draft validation and duplicate detection, emitted no terminal diagnostic event.
Changes
Valid search-domain restrictions
preferred_domainsnow accepts only real fully-qualified hostnames.- Schemes, paths and
www.are normalized. - IP addresses, one-label topic names and malformed hostnames are rejected.
- Invalid
site:tokens already present in model-generated queries are removed before SearXNG is called. - At least one unrestricted language variant remains available as before.
Examples:
- accepted:
nist.gov,docs.aws.amazon.com,https://www.nist.gov/path - rejected:
digital-forensics,assetmanagement,cleanroomrecovery
Narrower critical-gap classification
- The knowledge-brief prompt now requires a concrete consequence for every critical gap: a false conclusion, safety risk or non-executable core procedure.
- Definitions, comparisons, examples, screenshots, variants and editorial depth are optional by default when a grounded usable core already exists.
- Deterministic normalization downgrades over-classified editorial gaps only when at least three grounded statements remain.
- Missing rollback information, safety prerequisites, permissions, parameters, commands, validation steps and comparable operational blockers remain critical.
- Legacy
missing_informationis no longer automatically critical; it is classified by the same blocker rules. - Research queries are rebuilt only from remaining critical gaps and unresolved critical contradictions.
Article-type-aware draft validation
how_toandtroubleshootingretain the configured full answer minimum.conceptandreferenceuse a lower answer-length minimum but require at least two grounded key points.decision_guideuses a proportional minimum and requires at least two decision criteria.- Confidence, productive-source ratio, generation depth and problem-description checks remain enforced for every type.
Complete diagnostics
All article skip/rejection paths now publish an explicit event. After article.draft.started, the pipeline terminates with exactly one of:
article.createdarticle.draft.rejectedarticle.duplicatearticle.failed
Deterministic validation failures expose structured metadata:
reasonfieldactualrequiredarticle_type
The activity UI displays these values directly.
Compatibility
No new environment variables are required. Existing thresholds remain valid; their interpretation is now article-type aware.