name: xpz-reader description: Analyzes GeneXus XPZ/XML objects — identifies type, family, structure, and risk from raw XML input
xpz-reader
Interprets raw XML from GeneXus XPZ exports. Identifies object type, structural family, Part type mapping, and risk classification based on empirical evidence from a corpus of 7,219 real XMLs.
GUIDELINE
Read and classify GeneXus XML objects from XPZ packages. Answer only what the evidence supports. Always declare confidence level.
PATH RESOLUTION
- This
SKILL.mdlives inside a skill subfolder under the repository root. - Resolve every
../arquivo.mdreference relative to the directory of thisSKILL.md, not relative to the current working directory. - In practice,
../points to the shared methodological base in the parent directory of this skill folder.
TRIGGERS
Use this skill for:
- User provides raw XML or XML fragment from a GeneXus XPZ export
- User asks to identify an object type, family, or structure
- User asks which Part types are present, expected, or missing
- User asks about risk classification for a given object type
- User asks to compare two XML structures or families
- User asks what
Object/@typevalue corresponds to a given GeneXus object
Do NOT use this skill for:
- Generating or cloning XPZ objects (use
xpz-builder) - Questions about GeneXus IDE behavior, build, or runtime execution beyond structural classification
- Questions unrelated to GeneXus XPZ/XML structure
- Locating or finding objects by name or type within the KB corpus (use
xpz-index-triagefirst when a KbIntelligence index is available, to identify which XML to open)
RESPONSIBILITIES
- Identify
Object/@typeand map to known object category using 01-base-empirica-geral as the index plus 01a-catalogo-e-padroes-empiricos for the actual catalog - Map Part types present in input against observed frequencies and known patterns, using 01b-matriz-part-types-por-tipo when needed
- Classify object family when applicable: WebPanel families in 04-webpanel-familias-e-templates, Transaction families in 05-transaction-familias-e-templates
- For
WebPanel, classify the review by functional block before fine analysis:layout,events,variables,serialized functional metadata,identity and container, ordependencies - For
WebPanel, when a textual search finds a term inside<Source><![CDATA[<GxMultiForm..., classify that evidence aslayoutorserialized functional metadata, not asevents; for event/code-behind questions, preferscripts\Search-GeneXusXmlSourceBlock.ps1 -Block eventsover rawrg/grep - For
WorkWithForWeb, classify the review by functional block before fine analysis:Transaction binding,Pattern structure and navigation,Actions, links and prompts,Attribute references and data contract, orIdentity and container - For
DataSelector, classify the review by functional block before fine analysis:Selection contract,Selection logic and conditions,Attribute and function dependencies,Navigation context, orIdentity and container - For
Panel, classify the review by functional block before fine analysis:Panel structure and layout,Serialized behavior and configuration,Pattern and parent coupling,External dependencies, orIdentity and container - For
Transaction, classify the review by functional block before fine analysis:Transaction structure,Attributes and attribute properties,Rules,Events,Execution context, orIdentity and container - For
Transaction, when the primary block isAttributes and attribute properties, classify eachkey="False"attribute in the Level by writability using the detection signals in order:isRedundant="True"in Level →extended-parent-fk(non-writable);Formulaproperty in its Attribute XML →formula(non-writable); listed in a SubTypeGroup as mapped to a non-key Supertype attribute →extended-subtype-descriptive(non-writable); listed in a SubTypeGroup as mapped to a PK Supertype attribute →extended-subtype-key(writable); when no SubTypeGroup covers the attribute, apply the naked-FK test using the Transaction's Table XML: if the attribute appears in a Duplicate index of that Table XML →extended-fk-key(writable, FK column stored in this table); otherwise, identify direct FK entities as the Transactions whose ownkey="True"PK attribute matches a PK member or Duplicate-index column of this table — read each FK entity's Level and collect itskey="False"attributes — if the candidate attribute appears in any of those collections →extended-fk-descriptive(non-writable); for transitive extension, repeat the FK-entity lookup recursively on those FK entities; only if the attribute is absent from all FK entities at all depths →own-physical(writable); declare the writability classification explicitly in the analysis output; never declare a Transaction's physical table as "only keys" without verifying that everykey="False"attribute was classified and confirmed as non-writable - For
Procedure, classify the review by functional block before fine analysis:Source,Rules/parm,Variables,Calls and dependencies,Identity and container, andReport layoutwhen applicable - For
Procedure, when the review touches any block that could motivate an edit by the caller, recommend reading the completeSourcebefore proposing any change — especially when the object contains validation logic, printCases, or variable declarations that may interact with the intended edit; partialSourcereading is a known source of editing the wrong layer - For
DataProvider, classify the review by functional block before fine analysis:Output structure,Source,Navigation context,Calls and dependencies, orIdentity and container - For
API, classify the review by functional block before fine analysis:Service contract,Events and orchestration,Calls and dependencies,Data contract, orIdentity and container - For
Table, classify the review by functional block before fine analysis:Primary key structure,Secondary indexes and embedded index members,Transaction coupling and physical context, orIdentity and container - For
ExternalObject, classify the review by functional block before fine analysis:External contract surface,Method signatures and parameter typing,Platform and native binding metadata, orIdentity and container - For
UserControl, classify the review by functional block before fine analysis:Control contract surface,Properties and event bindings,Runtime resources and external dependencies, orIdentity and container - For
SubTypeGroup, classify the review by functional block before fine analysis:Group definition and member structure,Subtype mappings and role assignments,Contextual usage contract, orIdentity and container - For
File, classify the review by functional block before fine analysis:File identity and declared surface,Binary or textual payload fidelity,References and consumption context, orIdentity and container - For
Dashboard, classify the review by functional block before fine analysis:Dashboard composition and layout,Widgets and data bindings,Navigation and interaction context, orIdentity and container - For
Stencil, classify the review by functional block before fine analysis:Stencil definition and structural surface,Parameters and configurable slots,Pattern or generation consumption context, orIdentity and container - For
DataStore, classify the review by functional block before fine analysis:Store definition and declared connection surface,Configuration parameters and runtime options,Model and consumption context, orIdentity and container - For
Generator, classify the review by functional block before fine analysis:Generator definition and declared surface,Generation options and technical parameters,Model and target-platform usage context, orIdentity and container - For
Language, classify the review by functional block before fine analysis:Language definition and declared surface,Localization parameters and technical options,Model and runtime usage context, orIdentity and container - For
Document, classify the review by functional block before fine analysis:Document identity and declared surface,Materialized content and payload fidelity,References and functional consumption context, orIdentity and container - For
DeploymentUnit, classify the review by functional block before fine analysis:Deployment unit definition and declared surface,Packaging parameters and technical options,Runtime or delivery context, orIdentity and container - Treat any extra block opened after the first one as an
adjacent blockand open it only when there is explicit functional dependency with the primary block - Name every justified block transition in the analysis and handoff, instead of silently widening the scope
- State the conclusion scope at the smallest functional level supported by evidence, including execution context when that distinction matters
- For report
Procedure, classify whether the case fits the documented simple coverage from 05b-procedure-relatorio-familias-e-templates, and treat sanitized coverage as materialization-ready only when the selected block is marked asmolde pronto - Classify container identity from
parentTypeusing the GUIDs:00000000-0000-0000-0000-000000000008= Module/Folder (user-created container),c88fffcd-b6f8-0000-8fec-00b5497e2117= PackagedModule,afa47377-41d5-4ae8-9755-6f53150aa361= Root Module (virtual, no XML file in acervo),00000000-0000-0000-0000-000000000006= system Folder (Main Programs, ToBeDefined; never a valid parentType of packagable objects); never use the directory name inObjetosDaKbEmXmlas a type indicator — it varies across KBs - Assign risk level using 03-risco-e-decisao-por-tipo
- Identify structural anomalies: unexpected Part types, missing recurring parts, malformed envelope
- For report
Procedure, classify anomalies by layer:Source,Rules, or layoutPart c414ed00-8cc4-4f44-8820-4baf93547173 - Identify identity anomalies involving
fullyQualifiedName,name,parent,parentGuid,parentType, andmoduleGuid - Treat object lookup in repository-backed workflows as
type + name, nevernamealone - Confirm the real folder where the XML exists before citing, comparing, or using a local object as evidence
- When citing a line from GeneXus XML, classify the cited fragment as
effective Source,Rules/parm,XML metadata,call in caller, orsignature in callee - When reading GeneXus variable declarations or variable metadata, classify
ATTCUSTOMTYPEbc:<Transaction>together withAttCollection=True/False; never treat BC simple and BC collection as equivalent contracts - For SDTs used as parameter collections with boolean control flags, extract each flag name from the XML structure and recommend crosschecking its domain semantics against the
Sourceof theProcedureorDataProviderthat consumes it; do not infer meaning from the attribute name alone — similar names (ComSaldo,ComSaldoOuAembarcar) may encode different conditions depending on the consumer'sCases - When reading BC method calls in
Source, classify the method family asoperation,status/message,serialization/copy, orcollection, and keep that classification separate from runtime semantics not directly proved by the XML - Declare confidence level for every conclusion:
Direct evidence/Strong inference/Hypothesis - Never affirm import or build compatibility — structural analysis only
- When the task depends on a local KB parallel folder structure, require that structure to be clarified or validated first via
xpz-kb-parallel-setup - When the object analyzed is a WWP PatternInstance (
WorkWithPlus*): flag as structural anomaly any duplicate nodes in<attribute>,<gridAttribute>, or<parameter>;parentGuidinconsistent with the object name; and references to attributes apparently absent from the current model — if the user intends to package or clone the object, encaminhar paraxpz-builder - When the analysis is motivated by a GeneXus warning about an unknown provider, unknown item, designer, or extension metadata: classify the cited item before searching the XPZ/XML — (a) common exportable GeneXus object; (b) internal part or metadata; (c) designer or extension provider; (d) unknown type. If the XPZ/XML search returns no result and the item is not type (a), state only the limited conclusion: "not found in XPZ/XML" — never "does not exist in the KB". Refer to the conceptual boundary rule in
02-regras-operacionais-e-runtime.mdsection "Limite do XPZ/XML frente a providers e extensões GeneXus". - When the input is a legacy GeneXus 9 export envelope — a root
<Object>/<Attribute>carryingdataSource="gx-legacy-export"and a<GxLegacyPayload>wrapper, withguid=""and (for orphans likeReport/Menubar)type="gxlegacy/<Element>"— recognize it as materialized by the legacy sync engine (Sync-GeneXusXpzToXml.ps1): the real GX9 object content lives inside<GxLegacyPayload>as<GXObject><Element>by name (no type GUID). Route classification through 01k-registro-elementos-legados.md (equivalentreusing a modern type vsorphanunder agxlegacy/<Element>typeToken), not the modern type catalog; never treattype="gxlegacy/<Element>"as an unknown/invalid modern GUID, and never treatguid=""as a malformed envelope (legacy items carry no stable object GUID by design).
COMMUNICATION
- Respond in the same language the user writes in
- Lead with the classification result, then supporting evidence
- Always state confidence level explicitly
- Use concise language; avoid speculation beyond what the evidence supports
- When certainty is low, say so before proceeding
- NEVER invent Part type GUIDs or object attributes not observed in the corpus
STRUCTURE
Reference files and when to load them:
| Reference | Load when |
|---|---|
| 00-indice-da-base-genexus-xpz-xml.md | Always — absolute rules and envelope spec |
| 01-base-empirica-geral.md | Entry point and routing across the empirical 01 series |
| 01a-catalogo-e-padroes-empiricos.md | Identifying object type and reading the structural catalog |
| 01k-registro-elementos-legados.md | Input is a legacy GeneXus 9 export envelope (dataSource="gx-legacy-export", <GxLegacyPayload>, type="gxlegacy/<Element>") |
| 01b-matriz-part-types-por-tipo.md | Checking recurring Part type inventory by object type |
| 01c-campos-estaveis-vs-variaveis.md | Checking which fields tend to remain stable or vary |
| 01d-diffs-estruturais-por-tipo.md | Comparing structural density and per-type differences |
| 03-risco-e-decisao-por-tipo.md | Risk classification for any object type |
| 04-webpanel-familias-e-templates.md | Input contains WebPanel XML |
| 05-transaction-familias-e-templates.md | Input contains Transaction XML |
| 05b-procedure-relatorio-familias-e-templates.md | Input contains report Procedure XML |
| 06-padroes-de-objeto-e-nomenclatura.md | User asks about naming conventions or object organization |
| 09-inventario-e-rastreabilidade-publica.md | User asks about corpus history, validation trail, or inventory |
xpz-index-triage skill |
When a KbIntelligence index is available and the user needs to locate or confirm which object XML to open before structural analysis |
WORKFLOW
- Receive XML input or fragment from user
- If the task depends on locating files in a local KB parallel folder structure and that structure is still undefined, ambiguous, or unvalidated → ABORT and use
xpz-kb-parallel-setupfirst - Locate
Object/@typeattribute → use 01-base-empirica-geral to route and cross-reference against 01a-catalogo-e-padroes-empiricos; if the root element is<Attribute>(not<Object>), the type isAttribute— it uses a distinct envelope and has noObject/@type - Check 01b-matriz-part-types-por-tipo for the identified type: if 01b confirms the type uses no Parts (e.g.
ThemeClass,ThemeColor,Generator,DataStore,Module/Folder), skip Part enumeration — absence of<Part>is expected for these types, not an anomaly; otherwise enumerate Part types present and compare against observed frequencies - Identify missing or unexpected Part types relative to the known structural pattern — this step is not applicable for types confirmed in 01b as using no Parts
- Read container identity fields (
fullyQualifiedName,name,parent,parentGuid,parentType,moduleGuid) and classify the container fromparentTypeGUID — never from the directory name inObjetosDaKbEmXml, which varies across KBs:00000000-0000-0000-0000-000000000008→ Module/Folder (user-created container)c88fffcd-b6f8-0000-8fec-00b5497e2117→ PackagedModuleafa47377-41d5-4ae8-9755-6f53150aa361→ Root Module (virtual; no XML file in acervo)00000000-0000-0000-0000-000000000006→ system Folder (never a valid parentType of packagable objects)- unresolved when parentType is absent or unknown
- When the task depends on locating an object in a local GeneXus repository, confirm the object by
type + nameand verify the actual folder where the file exists before proceeding - Before citing a local line as evidence, classify the line role:
- effective
Sourceof the current object Rules/parmor signature of the current object- XML metadata or structural wrapper
- direct call site inside the caller object
- callee signature inside the called object
- effective
- If variable metadata or declaration indicates
ATTCUSTOMTYPEbc:<Transaction>, classify the variable as BC simple or BC collection usingAttCollection=True/Falsebefore interpreting method calls - If the task cites BC methods in
Source, classify each cited method by family:
operation:.Load(...),.Save(),.Delete(),.Check(),.Insert(),.Update()status/message:.Success(),.Fail(),.GetMessages()serialization/copy:.ToJson(),.FromJson(),.ToXml(),.FromXml(),.Clone()collection:.Add(),.Item(),.Sort(), and.Insert()when the variable was confirmed as collection
- If the conclusion is "object A calls object B", require evidence in A's effective
Sourceor in explicit call metadata belonging to A; aparm(...)line in B is only callee signature evidence - If type is WebPanel → load 04-webpanel-familias-e-templates, classify family, and classify the primary review block before fine analysis:
eventsfor user actions, refresh, start, load, procedural validation, and direct callslayoutfor visual composition, control hierarchy, grid/tab/action structure, and visible bindingsvariablesfor declaration contract, type coherence, and collection-vs-simple reviewserialized functional metadataforConditions,ControlWhere,ControlBaseTable,ControlOrder,ControlUnique,PATTERN_ELEMENT_CUSTOM_PROPERTIES,WebUserControlProperties, and pattern marksidentity and containerforfullyQualifiedName,parent,parentGuid,parentType, andmoduleGuiddependenciesforMasterPage, pattern links, user controls, and relevant external object references 12a. For WebPanel textual search in a local XML, do not treat a match in inlineGxMultiFormlayout as behavioral evidence; if the question is about calls, actions, validation, filters, or event flow, usescripts\Search-GeneXusXmlSourceBlock.ps1 -Block eventsor an equivalent structured extraction before citing the line
- For
WebPanel, open adjacent blocks only when there is explicit functional dependency with the primary block, and name that transition in the analysis - If type is
WorkWithForWeb→ classify the primary review block before fine analysis:
Transaction bindingforparent,parentGuid,parentType, associatedTransaction, structural coupling, and suspicion that the WW is attached to the wrong parentPattern structure and navigationforselection, tabs,view, filters, navigation, and functional organization inside the serialized patternActions, links and promptsfor actions, buttons, menu items,gxobject, links, prompts, and explicit openings of external objects from the WWAttribute references and data contractfor displayed attributes, attribute-based filters, columns, tabs depending on attributes, broken references, and the structural conventionadbb33c9-0906-4971-833c-998de27e0676-NomeDoAtributoIdentity and containerforfullyQualifiedName,name,guid,moduleGuid, container, and risk of confusing the target instance with another similar one
- For
WorkWithForWeb, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and treat surrounding generatedWebPanelorWorkWithPlusartifacts only as explicit external dependencies, never as canonical internal blocks ofWorkWithForWeb - If type is
DataSelector→ classify the primary review block before fine analysis:
Selection contractfor parameters, input signature, declarative selector variables, and the contract expected by the selectorSelection logic and conditionsforCondition, filters, expressions, selection criteria, and the effective logic that decides the returned setAttribute and function dependenciesfor referenced attributes, functions used in filters, broken names, unresolved references, and semantic dependencies that must really exist in the KBNavigation contextfor implicit or explicit base, transactional/physical context, and the functional frame in which the selector operatesIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
DataSelector, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep parameter contract, applied filter, and real KB dependency as separate layers until evidence supports joining them - If type is
Panel→ classify the primary review block before fine analysis:
Panel structure and layoutfor visual composition, controls, declarative organization, and the apparent functional shape of the panelSerialized behavior and configurationfor serialized behavior, persisted configuration, and functional metadata that cannot be reduced to visual decorationPattern and parent couplingforparent,parentGuid,parentType,moduleGuid, origin pattern, and the structural coupling that makes the panel depend on its contextExternal dependenciesfor external objects called, referenced, or needed to sustain the functional reading of the panelIdentity and containerforfullyQualifiedName,name,guid, container, and structural classification of the object
- For
Panel, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep the panel surface separate from the structural coupling around it until evidence supports joining them - If type is Transaction → load 05-transaction-familias-e-templates, classify family (F1–F6), and classify the primary review block before fine analysis:
Transaction structureforLevel, key,DescriptionAttribute, structural shape, and transactional compositionAttributes and attribute propertiesfor attributes,AttributeProperties, subtype linkage, and data-contract questionsRulesfor declarative rules, obligation, and normative transaction behaviorEventsfor interface-driven behavior and flow via web editingExecution contextwhen the main ambiguity is the distinction between web editing and BC usageIdentity and containerforfullyQualifiedName,parent,parentGuid,parentType, andmoduleGuid
- For
Transaction, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and state whether the conclusion applies via web editing, via BC, or remains unresolved across contexts - If type is
DataProvider→ classify the primary review block before fine analysis:
Output structurefor collection vs simple, nested groups, node names, cardinality, and coherence of the promised return shapeSourcefor conditions, assignments, assembly logic, calculations, population of output nodes, and internal flowNavigation contextfor implicit or declared base,For each, filters, base table, and navigation ambiguityCalls and dependenciesforSDT,Procedure,BC,Transaction, and immediate external dependencies needed to justify the conclusionIdentity and containerforfullyQualifiedName,parent,parentGuid,parentType, andmoduleGuid
- For
DataProvider, open adjacent blocks only when there is explicit functional dependency with the primary block, and name that transition in the analysis - If type is
API→ classify the primary review block before fine analysis:
Service contractfor exposed method, endpoint, external signature, and published operation shapeEvents and orchestrationfor.Before/.After, internal flow, validation, transformation, and orchestration behaviorCalls and dependenciesforProcedure,SDT,Domain,Transaction,EXO,DataProvider, and immediate external dependencies needed to justify the conclusionData contractfor input/output shape, type coherence, response structure, and mapping between contract and processed dataIdentity and containerforfullyQualifiedName,parent,parentGuid,parentType, andmoduleGuid
- For
API, open adjacent blocks only when there is explicit functional dependency with the primary block, and name that transition in the analysis - If type is
SDT→ classify the primary review block before fine analysis:
Structure definitionforLevel,LevelInfo, item sequence, hierarchy, composition, and collection-vs-simple structural shapeItem typing and dependenciesforidBasedOn,ATTCUSTOMTYPE, domain base, referencedSDT, and item-level semantic coherenceExternal serialization contractforExternalName,ExternalNamespace,idXmlName,idXmlNamespace,soaptype,idCollectionItemName, and equivalent serialization metadataTop-level type propertiesfor properties declared on theSDTobject itself, especially top-level typing or structural behavior that does not belong to one specific itemIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
SDT, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep internal shape, item typing, and external serialization as separate layers until evidence supports joining them - If type is
Theme→ classify the primary review block before fine analysis:
Theme core definitionfor the theme baseline, central properties, object shape, and global theme definitionClass graph and referencesfor theThemeClassgraph, internal class-to-class references, visual inheritance, and dependencies inside the theme class graphPredefined types and style bindingsforPredefinedTypes,Styles, and normative bindings between GeneXus visual types and the concreteThemeClass/ThemeColor/ColorPalette/DesignSystemstack when that coupling is materialized in the themeVisual simplification and override surfacefor controlled simplification, overrides, visual reduction, and removal of theme surface after the basic visual coupling has already been establishedIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Theme, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, keep theme baseline, class graph, normative bindings, and simplification layers separate until evidence supports joining them, and do not use simplification as a shortcut before class graph and normative bindings are sufficiently grounded - If type is
ThemeClass→ classify the primary review block before fine analysis:
Direct class surfacefor top-levelProperties, concrete visual properties, direct object shape, and what the class declares withoutPartInheritance and parent linkageforparent,parentGuid,parentType, visual inheritance chain, base class, derived variants, and visual states such ashoverTheme applicability and internal classificationforThemeElementThemeTypes,ThemeElementInternalType, applicability scope, and internal thematic classificationVisual references and external dependenciesfor nominal references to colors, images, helper classes, and other external visual resources the class depends onIdentity and containerforfullyQualifiedName,name,guid, andmoduleGuid; do not collapseparent*here when evidence points to functional inheritance
- For
ThemeClass, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep direct class surface, inheritance chain, applicability markers, and external visual dependencies separate until evidence supports joining them - If type is
ThemeColor→ classify the primary review block before fine analysis:
Color identity and namingfor the logical color name, nominal identity, and expected thematic roleDirect color value surfacefor top-levelProperties, serialized color value, direct object shape, and the concrete color definition withoutPartTheme applicability and palette couplingfor relation withTheme,ColorPalette,DesignSystem, applicability scope, and semantic fit inside the visual familyVisual references and usage dependenciesfor consumption byThemeClass,Theme, styles, and other visual elements that depend on this color identity and valueIdentity and containerforfullyQualifiedName,name,guid, andmoduleGuid
- For
ThemeColor, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep nominal identity, direct value, thematic coupling, and visual usage dependencies separate until evidence supports joining them - If type is
ColorPalette→ classify the primary review block before fine analysis:
Palette identity and namingfor the logical palette name, nominal identity, and expected thematic rolePalette composition and declared membersfor the palette's internal composition, declared items, direct object shape, and the functional list it materializesTheme and design-system couplingfor relation withTheme,DesignSystem, and architectural fit inside the broader visual layerColor references and usage surfacefor relation withThemeColorand visual consumers that depend on this paletteIdentity and containerforfullyQualifiedName,name,guid, andmoduleGuid
- For
ColorPalette, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep palette identity, declared composition, architectural coupling, and usage surface separate until evidence supports joining them - If type is
DesignSystem→ classify the primary review block before fine analysis:
System identity and namingfor the logical system name, nominal identity, and expected architectural roleDesign tokens and declared resourcesfor tokens, declared resources, internal composition, and the functional shape the design system materializesTheme and palette couplingfor relation withTheme,ColorPalette, and architectural coupling across the visual layersVisual rules and consumption surfacefor visual rules consumed by other layers and the practical surface where the system affects renderingIdentity and containerforfullyQualifiedName,name,guid, andmoduleGuid
- For
DesignSystem, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep system identity, declared tokens/resources, theme-palette coupling, and consumption surface separate until evidence supports joining them - If type is
PackagedModule→ classify the primary review block before fine analysis:
Module identity and namingfor the logical module name, nominal identity, and expected semantic rolePackaging boundary and declared membersfor the package boundary, declared members, internal composition, and the functional set the packaged module delimitsParent and installation contextfor installation relation, structural parent, and hierarchical fit of the packaged moduleDependency and consumption surfacefor module dependencies and the way other layers or objects consume itIdentity and containerforfullyQualifiedName,name,guid, andmoduleGuid
- For
PackagedModule, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep module identity, package boundary, installation context, and dependency-consumption surface separate until evidence supports joining them - If type is
Image→ classify the primary review block before fine analysis:
Image identity and namingfor the logical image name, nominal identity, and expected semantic role of the resourceImage item set and declared variantsforImageItem, declared variants, internal composition, and the functional shape of the image resourceBinary payload and extraction fidelityforbase64Binary, payload integrity, content preservation, and extraction-materialization fidelityTheme and language referencesforThemeReference,LanguageReference, and external presentation dependencies tied to the imageIdentity and containerforfullyQualifiedName,name,guid, andmoduleGuid
- For
Image, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep image identity, declared variants, binary payload, and theme-language references separate until evidence supports joining them - If type is
Attribute→ classify the primary review block before fine analysis:
Attribute core definitionfor top-level shape, central definition, and baseline attribute structureTyping and base linkageforidBasedOn, base domain, declared type, and typed contract coherenceSemantic property referencesforControlItemDescription, broken nominal references, and dependencies on other real attributes in the KBPresentation and control semanticsfor functional presentation/control properties and serialized behavior that affect attribute usageIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Attribute, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep baseline definition, typing, nominal references, and control/presentation semantics separate until evidence supports joining them - If type is
PatternSettings→ classify the primary review block before fine analysis:
Pattern registration and environment fitfor pattern availability, environment compatibility, registration fit, and symptoms such aspattern not registeredorwas not changedInternal pattern configurationforCDATA, persisted flags, internal declarative shape, and the pattern configuration stored in the objectContext and callable dependenciesforContextVariable,LoadProcedure, called procedures, and functional context required by the patternSecurity and auxiliary referencesforSecurityand other auxiliary references that the pattern needs outside its main contextIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
PatternSettings, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep pattern registration, internal configuration, callable context, and auxiliary/security references separate until evidence supports joining them - If type is
Folder→ classify the primary review block before fine analysis:
Minimal structural shapefor XML envelope,Object/@type, minimal structural shape, and baseline serializationParent and module contextforparent,parentGuid,parentType,moduleGuid, and the folder's structural placementIDE semantic readingfor how the IDE/importer interprets the object, includingCategoryas a UI labelIdentity and naming semanticsfor naming ambiguity, displayed naming expectations, and the distinction between XML type and UI labelIdentity and containerforfullyQualifiedName,name,guid, and container-level structural identity
- For
Folder, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep structural shape, parent/module context, IDE reading, and naming semantics separate until evidence supports joining them - If type is
Domain→ classify the primary review block before fine analysis:
Base type definitionfor base type,ATTCUSTOMTYPEwhen applicable, and the domain's primary typed contractLimits and scalar constraintsfor length, precision, scale, flags, and scalar constraintsEnumerated values contractforIDEnumDefinedValues, value lists, descriptions, and enumerated contract coherenceUsage-facing semantic contractfor how the domain is meant to be consumed by other objects, UI, or data contractsIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Domain, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep base typing, scalar limits, enumerated contract, and usage-facing semantics separate until evidence supports joining them - If type is
Table→ classify the primary review block before fine analysis:
Primary key structurefor primary key composition, structural order, key members, and the coherence of the table's main physical coreSecondary indexes and embedded index membersfor embedded indexes, index members, ordering, search coverage, and readingIndexas internal structure of theTableTransaction coupling and physical contextfor physical reassociation with theTransactionof the same name, structural context in the target, and contextual dependency that still exists even when namedparentis absentIdentity and containerforfullyQualifiedName,name,guid,parentGuid,moduleGuid, and the risk of reading the wrongTablein the wrong structural context
- For
Table, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, keep primary key, embedded indexes, and transaction-coupling/context layers separate until evidence supports joining them, and do not promote embeddedIndexto a separate top-level object in this reading - If type is
ExternalObject→ classify the primary review block before fine analysis:
External contract surfacefor exposed surface, external naming, published methods/properties, and the functional role of the wrapperMethod signatures and parameter typingfor methods, parameters, return values, signature coherence, and typed dependencies such asSDT, domains, or helper typesPlatform and native binding metadatafor assembly, target library, platform metadata, native binding, and technical coupling specific to theExternalObjectIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
ExternalObject, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep exposed surface, typed signatures, and native-binding/platform metadata separate until evidence supports joining them - If type is
UserControl→ classify the primary review block before fine analysis:
Control contract surfacefor declared interface, exposed surface, the functional role of the control, and its general host-facing shapeProperties and event bindingsfor properties, events, parameters, and binding contract between the control and its hostRuntime resources and external dependenciesfor scripts, assets, auxiliary resources, technical dependencies, and execution-time coupling of theUserControlIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
UserControl, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep declared control contract, property/event bindings, and runtime-dependency layers separate until evidence supports joining them - If type is
SubTypeGroup→ classify the primary review block before fine analysis:
Group definition and member structurefor group composition, declared members, structural shape, and grouping integritySubtype mappings and role assignmentsfor supertype/subtype mapping, member roles, and internal subtype assignmentsContextual usage contractfor how the group supports usage inAttribute,Transaction, and other consumer objects of the modelIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
SubTypeGroup, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep group definition, subtype-role mapping, and contextual-usage layers separate until evidence supports joining them - If type is
File→ classify the primary review block before fine analysis:
File identity and declared surfacefor resource naming, declared extension/logical role, and top-level resource surfaceBinary or textual payload fidelityfor materialized content, payload integrity, byte/text preservation, and extraction fidelityReferences and consumption contextfor external references, consumers of the file, runtime dependency, and usage contextIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
File, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep resource identity/surface, payload, and consumption-context layers separate until evidence supports joining them - If type is
Dashboard→ classify the primary review block before fine analysis:
Dashboard composition and layoutfor sections, visual blocks, structural organization, and dashboard composition shapeWidgets and data bindingsfor widgets, components, data bindings, parameters, and the linkage between visible parts and their data providersNavigation and interaction contextfor actions, links, drill-down, user interaction, and the dashboard's functional placement in the wider flowIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Dashboard, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep composition, widget-binding, and navigation-interaction layers separate until evidence supports joining them - If type is
Stencil→ classify the primary review block before fine analysis:
Stencil definition and structural surfacefor artifact shape, declared composition, base structure, and structural surface of the stencilParameters and configurable slotsfor parameters, placeholders, variable slots, and configurable contract of the stencilPattern or generation consumption contextfor how the stencil is consumed by patterns, generation, or dependent flowsIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Stencil, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep structural definition, parameterization, and pattern/generation-consumption layers separate until evidence supports joining them - If type is
DataStore→ classify the primary review block before fine analysis:
Store definition and declared connection surfacefor declared store identity, primary connection surface, and the main shape of the definitionConfiguration parameters and runtime optionsfor parameters, flags, options, and runtime-operational configurationModel and consumption contextfor how the store fits into the model, its runtime role, and consumption by dependent objectsIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
DataStore, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep store definition, runtime configuration, and consumption-context layers separate until evidence supports joining them - If type is
Generator→ classify the primary review block before fine analysis:
Generator definition and declared surfacefor what the generator declares itself to be, its main role, and its structural surfaceGeneration options and technical parametersfor parameters, flags, options, and technical generation behaviorModel and target-platform usage contextfor model fit, generation target, effective consumption, and role in the flowIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Generator, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep declared surface, technical parameters, and usage-context layers separate until evidence supports joining them - If type is
Language→ classify the primary review block before fine analysis:
Language definition and declared surfacefor what the object declares itself to be, its main role, and its structural surfaceLocalization parameters and technical optionsfor parameters, options, codes, flags, and technical localization behaviorModel and runtime usage contextfor model fit, effective consumption, runtime linkage, and functional role of the languageIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Language, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep declared surface, localization parameters, and usage-context layers separate until evidence supports joining them - If type is
Document→ classify the primary review block before fine analysis:
Document identity and declared surfacefor what the document declares itself to be, its main role, naming, and structural surfaceMaterialized content and payload fidelityfor materialized content, payload integrity, text/byte preservation, and extraction fidelityReferences and functional consumption contextfor consumers of the document, external links, functional dependency, and role in the wider flowIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
Document, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep declared surface, payload, and consumption-context layers separate until evidence supports joining them - If type is
DeploymentUnit→ classify the primary review block before fine analysis:
Deployment unit definition and declared surfacefor what the unit declares itself to be, its main role, and its structural surfacePackaging parameters and technical optionsfor parameters, options, flags, and technical packaging or delivery behaviorRuntime or delivery contextfor flow fit, delivery target, effective consumption, and operational roleIdentity and containerforfullyQualifiedName,name,guid,parent,parentGuid,parentType, andmoduleGuid
- For
DeploymentUnit, open adjacent blocks only when there is explicit functional dependency with the primary block, name that transition in the analysis, and keep declared surface, technical parameters, and delivery-context layers separate until evidence supports joining them - If type is
Procedure→ classify the primary review block before fine analysis:
Sourcefor filters, flow, conditions, assignments, navigation, and calls made in the bodyRules/parmfor signature, parameters, declarative contract, and rule-focused errorsVariablesfor existence, type, helper declarations, and collection-vs-simple coherenceCalls and dependenciesfor callee review, dependency chain, and proof of caller call-siteIdentity and containerforfullyQualifiedName,parent,parentGuid,parentType, andmoduleGuidReport layoutonly when theProcedureis a report and the symptoms involveBands,PrintBlock,ReportLabel,ReportAttribute, or layout shape
- For
Procedure, open adjacent blocks only when there is explicit functional dependency with the primary block, and name that transition in the analysis - If type is report
Procedure→ load 05b-procedure-relatorio-familias-e-templates, classify family, and separate observed evidence intoSource,Rules, and layout - For report
Procedure, if the symptoms point toinvalid control,printBlock,ReportLabel, orReportAttribute, classify the primary suspicion as layout; if they point toparm(...)or missing;, classify the primary suspicion asRules; if they point toHeader,Footer,For each, orOutput_file, classify the primary suspicion asSource - For report
Procedure, if the case still fits simple F2/F3 coverage with no repeated structural failure signal, report that sanitized canonical coverage is still available and label the basis asmolde sanitizado; otherwise recommend escalation to comparable real XML explicitly - Assign risk level from 03-risco-e-decisao-por-tipo
- Report result:
- Object type and canonical name
- Container classification (
Folder,Module, or unresolved) - Structural family (if applicable)
- For
WebPanel, primary review block and any justified block transition used in the analysis - For
WorkWithForWeb, primary review block and any justified block transition used in the analysis - For
DataSelector, primary review block and any justified block transition used in the analysis - For
Panel, primary review block and any justified block transition used in the analysis - For
Transaction, primary review block and any justified block transition used in the analysis, plus explicit scope via web editing, via BC, or unresolved - For
DataProvider, primary review block and any justified block transition used in the analysis - For
API, primary review block and any justified block transition used in the analysis - For
SDT, primary review block and any justified block transition used in the analysis - For
Theme, primary review block and any justified block transition used in the analysis - For
Attribute, primary review block and any justified block transition used in the analysis - For
PatternSettings, primary review block and any justified block transition used in the analysis - For
Folder, primary review block and any justified block transition used in the analysis - For
Domain, primary review block and any justified block transition used in the analysis - For
Table, primary review block and any justified block transition used in the analysis - For
ExternalObject, primary review block and any justified block transition used in the analysis - For
UserControl, primary review block and any justified block transition used in the analysis - For
SubTypeGroup, primary review block and any justified block transition used in the analysis - For
File, primary review block and any justified block transition used in the analysis - For
Dashboard, primary review block and any justified block transition used in the analysis - For
Stencil, primary review block and any justified block transition used in the analysis - For
DataStore, primary review block and any justified block transition used in the analysis - For
Generator, primary review block and any justified block transition used in the analysis - For
Language, primary review block and any justified block transition used in the analysis - For
Document, primary review block and any justified block transition used in the analysis - For
DeploymentUnit, primary review block and any justified block transition used in the analysis - For
Procedure, primary review block and any justified block transition used in the analysis - Risk level
- Part types: present / expected / missing — or N/A if the type is confirmed in [01b] as using no Parts
- For report
Procedure, anomaly layer and escalation recommendation (sanitized canonical template still fitsvsescalate to comparable real XML) - For report
Procedure, basis used labeled as exactly one of:molde sanitizado,XML real da KB atual,XML real de outra KB, orhipótese - Identity fields:
fullyQualifiedName,name,parent,parentGuid,parentType,moduleGuid - Confidence level for each conclusion
- Any structural anomalies detected
QUALITY CHECKLIST
-
Object/@typeidentified and mapped to known category - Part types enumerated and compared against corpus frequencies — or confirmed N/A for types that use no Parts per [01b]
- Any cited XML line has an explicit evidence role (
effective Source,Rules/parm,XML metadata,call in caller, orsignature in callee) - BC variables cited from XML metadata or
Sourcewere classified as simple or collection usingATTCUSTOMTYPEtogether withAttCollection - BC methods cited from
Sourcewere classified by family (operation,status/message,serialization/copy, orcollection) - Container identity classified from
parentTypeand comparable corpus evidence - Risk level stated with source reference
- Family classified when type supports it (WebPanel, Transaction)
- For
WebPanel, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
WorkWithForWeb, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
DataSelector, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Panel, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Transaction, the primary review block was declared before fine analysis, any block transition was justified explicitly, and web editing vs BC scope was stated when relevant - For
DataProvider, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
API, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Table, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
ExternalObject, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
UserControl, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
SubTypeGroup, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
File, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Dashboard, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Stencil, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
DataStore, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Generator, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Language, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Document, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
DeploymentUnit, the primary review block was declared before fine analysis and any block transition was justified explicitly - For
Procedure, the primary review block was declared before fine analysis and any block transition was justified explicitly - For report
Procedure, evidence was separated intoSource,Rules, and layout and the escalation status was made explicit - Confidence level declared for every conclusion
- No import/build compatibility claims made
- No Part type GUIDs invented outside observed corpus
CONSTRAINTS
- NEVER flag absence of
<Part>as a structural anomaly for types confirmed in 01b-matriz-part-types-por-tipo as using no Parts (ThemeClass,ThemeColor,Generator,DataStore,Module/Folder) - NEVER invent a Part type GUID not observed in the empirical corpus
- NEVER promote a Hypothesis to Strong Inference without new direct evidence
- NEVER affirm import or build success — structural analysis only
- ABORT analysis if XML is too malformed to identify
Object/@type - When sample is small or type is rare, state it explicitly before concluding
- When object lookup depends on a local repository, ABORT if the file was not confirmed in the folder implied by the validated object type
- When repository-backed analysis depends on the KB parallel folder structure, ABORT if that structure was not clarified or validated first
- NEVER present a
parm(...)line from the called object's XML as the caller's call site - NEVER treat
ATTCUSTOMTYPEbc:<Transaction>alone as enough to collapse BC simple and BC collection into the same contract - NEVER turn BC
status/messagemethods such as.Success(),.Fail(), or.GetMessages()into a new functional operation without direct evidence beyond the cited line - NEVER infer runtime semantics for BC collection methods from name similarity alone; require the simple-vs-collection classification first
- For
WebPanel, NEVER jump from one functional block to another without explicit dependency rationale - For
WorkWithForWeb, NEVER jump from one functional block to another without explicit dependency rationale, and NEVER treat surrounding generatedWebPanelorWorkWithPlusartifacts as canonical internal blocks of the WW itself - For
DataSelector, NEVER collapse parameter contract, applied filter, and real KB dependency into a single conclusion without explicit evidence joining those layers - For
Panel, NEVER collapse the panel surface and the structural coupling around it into the same conclusion without explicit evidence joining those layers - For
Transaction, NEVER collapse web editing and BC behavior into the same conclusion without explicit evidence - For
DataProvider, NEVER treat output shape as proved only by dependency inventory, or navigation context as proved only by the return shape - For
API, NEVER treat dependency inventory as enough to prove service contract, or service contract text as enough to prove the full orchestration chain - For
Table, NEVER treat embeddedIndexas an independent top-level object in this review, and NEVER treat absence of namedparentas proof that theTablehas no contextual dependency - For
ExternalObject, NEVER treat native-binding/platform metadata as enough to prove method signatures, or exposed surface text as enough to prove technical binding correctness - For
UserControl, NEVER treat runtime dependency presence as enough to prove property/event binding correctness, or declared control surface as enough to prove runtime integration is complete - For
SubTypeGroup, NEVER treat contextual usage in another object as enough to prove internal subtype-role mapping correctness, or internal group composition as enough to prove contextual usage is coherent - For
File, NEVER treat declared resource identity/surface as enough to prove payload fidelity, or payload fidelity as enough to prove correct consumption context - For
Dashboard, NEVER treat visual composition as enough to prove widget/data binding correctness, or widget/data binding as enough to prove navigation/interaction coherence - For
Stencil, NEVER treat structural definition as enough to prove parameterization correctness, or consumption by pattern/generation as enough to prove internal stencil definition is coherent - For
DataStore, NEVER treat declared connection surface as enough to prove runtime configuration correctness, or runtime configuration as enough to prove coherent consumption context in the model - For
Generator, NEVER treat declared generator surface as enough to prove technical-parameter correctness, or technical parameters as enough to prove coherent target-platform usage context - For
Language, NEVER treat declared language surface as enough to prove localization-parameter correctness, or localization parameters as enough to prove coherent model/runtime usage context - For
Document, NEVER treat declared document surface as enough to prove payload fidelity, or payload fidelity as enough to prove coherent functional consumption context - For
DeploymentUnit, NEVER treat declared deployment-unit surface as enough to prove packaging-parameter correctness, or technical parameters as enough to prove coherent delivery/runtime context - For
Procedure, NEVER jump from one functional block to another without explicit dependency rationale - Absolute rules in 00-indice-da-base-genexus-xpz-xml.md take precedence over all heuristics