Skip to content

Commit 98a90b0

Browse files
author
marce
committed
v4.6.2: Loop autonomo — Cora-4.0.12 a 4.0.16 + graphicx fix + graficos no corpo
## Loop autonomo (5 iteracoes) - 13->12->10->14->12 gaps detectados - Cora-4.0.12 a 4.0.16 criados - ECE permanece o gap mais persistente ## Fix critico: graphicx - \\usepackage{graphicx} adicionado ao preambulo - 10 graficos agora renderizados no PDF (958 KB vs 487 KB antes) - Graficos movidos do apendice para o corpo (junto aos problemas) ## Estrutura final - dca_resolucao_completa.pdf: 41 paginas, 10 graficos, 18 problemas
1 parent 3dd1a93 commit 98a90b0

9 files changed

Lines changed: 1496 additions & 127 deletions

File tree

AGENTS.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ SEEKER(研究) → 文章创建器(49智能体, 8阶段)
107107
| 5 | 语言校正器CJK检测 | 98 | 中文上下文+PT-BR输出需强制校正器; 零容忍CJK泄漏 |
108108
| 6 | editais-br v2.0实战验证 + 4 categorias | 92 | Busca paralela real (pesquisa/mestrado/doutorado/startup) com duckduckgo via curl.exe; httpx bloqueado por CAPTCHA; score por perfil 58-68/100 |
109109
| 7 | editais-br v7.1 cache versionado + 50+ curados | 94 | KeyError score corrigido + CACHE_VERSION; 28→52 editais curados (16 FAPs estaduais, 4 exterior, 4 setoriais); fallback curadoria agora cobre todas as 27 UFs |
110+
| 8 | SDD+TDD Pipeline Acadêmico + Simulação de Arguição | 94 | 7 specs modularizadas + 9 CTs validados + 7 correções aplicadas + 3 ADRs DecisionNode + 16 perguntas de banca simuladas; nota DAP 8,07→9,0; anteprojeto PPGTE/UFC anonimizado e validado |
110111

111112
## 快速命令
112113

@@ -156,6 +157,11 @@ SEEKER(研究) → 文章创建器(49智能体, 8阶段)
156157
| editais-br 4 categorias | 4次 | pesquisa/mestrado/doutorado/startup → 10 resultados reais cada |
157158
| extracao_profunda | 1次 | sintaxe corrigida, extração funcional (contrapartida, prazos, docs) |
158159
| editais-br v7.1 cache versionado | 1次 | bug KeyError score corrigido + CACHE_VERSION + setdefault score + cache invalidation |
160+
| SDD+TDD (specs/ pipeline) | 1次 | 7 specs criadas, 9 CTs, 7/7 falhas corrigidas, 3 ADRs registradas |
161+
| Simulação de Arguição (agent-forum) | 1次 | 16 perguntas, 3 personas de banca, nota DAP 8,07→9,0 |
162+
| Protocolo de Anonimato | 1次 | identificadores indiretos removidos; anteprojeto anônimo validado |
163+
| DecisionNode (ADRs) | 3次 | architectu-001, testing-001, security-001 registradas |
164+
| Conhecimento Estruturado (SDD) | 1次 | especificação como infraestrutura operacional (Cap. 6 livro) |
159165

160166
## 交叉验证矩阵 (亲和度)
161167

@@ -167,3 +173,7 @@ SEEKER(研究) → 文章创建器(49智能体, 8阶段)
167173
- websearch↔SEEKER-searcher: 0.85
168174
- editais-br↔websearch: 0.90 (curl.exe+duckduckgo bypass)
169175
- editais-br↔docling-pdf-extraction: 0.85 (extracao_profunda dependente)
176+
- SDD+TDD↔DecisionNode: 0.95 (specs geram ADRs automaticamente)
177+
- agent-forum↔sequential-thinking: 0.90 (simulação de banca com personas)
178+
- TESTS_SPEC↔PDF-validation: 0.88 (pipeline CI para documentos acadêmicos)
179+
- Protocolo-Anonimato↔grep: 0.92 (detecção de identificadores indiretos)

gen_graphs.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import matplotlib; matplotlib.use('Agg')
2+
import matplotlib.pyplot as plt
3+
import numpy as np, os
4+
od = r"C:\Users\marce\OneDrive\Documentos\Antiprojeto UFC\graficos_dca"
5+
os.makedirs(od, exist_ok=True)
6+
np.random.seed(42)
7+
8+
# A: Duffing H0 semilog
9+
def dq(g,q0,T=50,dt=0.05):
10+
N=int(T/dt);q=np.zeros(N);p=np.zeros(N);q[0]=q0
11+
for i in range(N-1):
12+
k1q,k1p=p[i],q[i]-q[i]**3-g*p[i]
13+
mq,mp=q[i]+.5*dt*k1q,p[i]+.5*dt*k1p
14+
k2q,k2p=mp,mq-mq**3-g*mp
15+
mq,mp=q[i]+.5*dt*k2q,p[i]+.5*dt*k2p
16+
k3q,k3p=mp,mq-mq**3-g*mp
17+
mq,mp=q[i]+dt*k3q,p[i]+dt*k3p
18+
k4q,k4p=mp,mq-mq**3-g*mp
19+
q[i+1]=q[i]+dt/6*(k1q+2*k2q+2*k3q+k4q)
20+
p[i+1]=p[i]+dt/6*(k1p+2*k2p+2*k3p+k4p)
21+
H0=.5*p**2+.25*q**4-.5*q**2
22+
return np.arange(N)*dt, H0
23+
24+
fig,ax=plt.subplots(1,3,figsize=(12,4))
25+
for i,g in enumerate([.01,.1,.5]):
26+
for q0 in [.5,-.5,1.2,-1.2]:
27+
t,H0=dq(g,q0,T=50); ax[i].semilogy(t,np.abs(H0)+1e-16,alpha=.6,lw=.4)
28+
ax[i].set_title(f'gamma={g}');ax[i].set_xlabel('t');ax[i].set_ylabel('|H0(t)|');ax[i].grid(1,alpha=.3)
29+
fig.suptitle('Duffing: H0(t) — Escala Semilog')
30+
plt.tight_layout();plt.savefig(os.path.join(od,'duffing_h0_semilog.png'),dpi=100);plt.close()
31+
print("A OK")
32+
33+
# B: Basins (ultra coarse)
34+
q0s=np.linspace(-2,2,20);p0s=np.linspace(-1.5,1.5,15);bm=np.zeros((15,20))
35+
for i,p0 in enumerate(p0s):
36+
for j,q0 in enumerate(q0s):
37+
qq,pp=q0,p0
38+
for _ in range(500):
39+
k1=pp;k2=qq-qq**3-.1*pp;qq+=.02*(k1+k2)/2;pp+=.02*(k2-.1*pp)
40+
bm[i,j]=1 if qq>0 else -1
41+
fig,ax=plt.subplots(figsize=(7,5))
42+
ax.imshow(bm,extent=[q0s[0],q0s[-1],p0s[0],p0s[-1]],origin='lower',aspect='auto',cmap='RdBu',alpha=.8)
43+
ax.set_xlabel('q0');ax.set_ylabel('p0');ax.set_title('Bacias de Atracao — Duffing (gamma=0.1)')
44+
plt.tight_layout();plt.savefig(os.path.join(od,'duffing_bacias.png'),dpi=100);plt.close()
45+
print("B OK")
46+
47+
# C: EDE MC vs FP
48+
om,ka,sg,ep=1.,.3,.5,.5
49+
b=lambda th:om-ka*np.sin(th);a=lambda th:sg*(1+ep*np.cos(th))
50+
Nt,Ti,dt=300,20,.04;fv=[]
51+
for s in range(Nt):
52+
np.random.seed(s);Ns=int(Ti/dt);th=np.zeros(Ns);th[0]=np.random.uniform(0,2*np.pi)
53+
for i in range(Ns-1):
54+
dW=np.sqrt(dt)*np.random.normal()
55+
tp=th[i]+b(th[i])*dt+a(th[i])*dW
56+
th[i+1]=th[i]+.5*(b(th[i])+b(tp))*dt+.5*(a(th[i])+a(tp))*dW
57+
fv.extend(th[-int(Ns*.3):])
58+
Ng=80;dth=2*np.pi/Ng;M=np.zeros((Ng,Ng))
59+
for i in range(Ng):
60+
th=i*dth;dr=b(th);df=.5*a(th)**2
61+
ip=(i+1)%Ng;im=(i-1)%Ng
62+
M[i,im]+=df/dth**2+dr/(2*dth);M[i,i]-=2*df/dth**2;M[i,ip]+=df/dth**2-dr/(2*dth)
63+
ev,evc=np.linalg.eig(M.T);rs=np.abs(evc[:,np.argmin(np.abs(ev))].real)
64+
rs/=np.sum(rs)*dth;tg=np.linspace(0,2*np.pi,Ng)
65+
hist,bins=np.histogram(np.array(fv),bins=40,range=(0,2*np.pi),density=True);bc=(bins[:-1]+bins[1:])/2
66+
fig,ax=plt.subplots(figsize=(10,5))
67+
ax.bar(bc,hist,width=.12,alpha=.4,label='MC',color='#1f77b4')
68+
ax.plot(tg,rs,'r-',lw=2,label='F-P');ax.set_xlabel('theta');ax.set_ylabel('rho');ax.legend();ax.grid(1,alpha=.3)
69+
ax.set_title('EDE: Monte Carlo vs Fokker-Planck')
70+
plt.tight_layout();plt.savefig(os.path.join(od,'ede_mc_vs_fp.png'),dpi=100);plt.close()
71+
print("C OK")
72+
73+
# D: Current J*
74+
Js=np.zeros(Ng)
75+
for i in range(Ng):
76+
ip=(i+1)%Ng;im=(i-1)%Ng
77+
dar=(a(tg[ip])*rs[ip]-a(tg[im])*rs[im])/(2*dth)
78+
Js[i]=b(i*dth)*rs[i]-.5*a(i*dth)*dar
79+
fig,ax=plt.subplots(figsize=(10,4))
80+
ax.plot(tg,Js,'b-',lw=2);ax.axhline(0,color='gray',ls='--',lw=.8)
81+
ax.set_xlabel('theta');ax.set_ylabel('J*');ax.set_title('Corrente Estacionaria');ax.grid(1,alpha=.3)
82+
Jm=np.mean(Js)
83+
ax.text(.5,.9,f'<J*> = {Jm:.4f} (nao-nula = NESS)',transform=ax.transAxes,fontsize=11,ha='center',bbox=dict(boxstyle='round',facecolor='wheat',alpha=.8))
84+
plt.tight_layout();plt.savefig(os.path.join(od,'ede_corrente_j.png'),dpi=100);plt.close()
85+
print("D OK")
86+
print("ALL DONE")

skills/cora-debate/references/integration_matrix.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,16 @@
3636
| cora-debate | swarm-review | 0.85 | Revisao | Verificacao por enxame no estagio DEBATE |
3737
| cora-debate | academic-ml-pipeline | 0.80 | Estatistica | V4 compartilha testes estatisticos |
3838
| cora-debate | PhD Auditor (P18) | 0.75 | Auditoria | Nash Solver + Cohen's d |
39+
| cora-debate | SDD+TDD (EVO-8) | 0.88 | Validacao | V7+V8+V9 integrados ao pipeline de validacao academica |
40+
| cora-debate | DecisionNode | 0.82 | Rastreabilidade | V8 conecta a ADR security-001 (anonimato) |
41+
| cora-debate | anteprojeto PPGTE | 0.85 | Aplicacao | V9 verifica LGPD/Res.39 no anteprojeto |
3942
| cora-qscore | agent-node-pipeline (P16) | 0.80 | Pipeline | Selecao de nos por Q-Score |
4043
| cora-qscore | mirofish-sync | 0.70 | Sincronizacao | Monitora upstream ForumEngine |
4144
| cora-verifier | code-runner | 0.95 | Execucao | Executa verificacoes Python/SymPy |
4245
| cora-verifier | sequential-thinking | 0.85 | Raciocinio | Verifica passos de cadeia de pensamento |
4346
| cora-verifier | academic-ml-pipeline | 0.80 | Estatistica | V4 usa SciPy compartilhado |
47+
| cora-verifier | websearch | 0.75 | DOI | V7 pode resolver DOIs via CrossRef/OpenAlex |
48+
| cora-verifier | grep | 0.90 | Texto | V8 usa regex para detectar identificadores |
4449

4550
## Comandos Slash Integrados
4651

@@ -51,8 +56,11 @@
5156
| `/cora-select` | cora-qscore (plugin) | Seleciona melhor agente |
5257
| `/cora-reward` | cora-qscore (plugin) | Registra recompensa |
5358
| `/cora-reset` | cora-qscore (plugin) | Reseta Q-Scores |
54-
| `/cora-verify` | cora-verifier (MCP) | Executa verificador especifico |
59+
| `/cora-verify` | cora-verifier (MCP) | Executa verificador especifico (V1-V9) |
5560
| `/cora-health` | cora-verifier (MCP) | Verifica saude dos verificadores |
61+
| `/cora-doi` | V7 (MCP) | Verifica rastreabilidade bibliografica |
62+
| `/cora-anon` | V8 (MCP) | Verifica anonimato do documento |
63+
| `/cora-lgpd` | V9 (MCP) | Verifica conformidade LGPD/Etica |
5664

5765
## Fluxo de Dados
5866

skills/cora-debate/references/verifier_specs.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,113 @@ sol = "exp(x)" # y = e^x
137137
- Requer SymPy >= 1.12
138138
- Nao resolve EDPs nao-lineares
139139
- Falha em solucoes implicitas
140+
141+
**Refinamento EVO-8 (v2.0)**:
142+
- Metodo primario: `sympy.checkodesol` para verificacao formal
143+
- Fallback: substituicao simbolica direta
144+
145+
---
146+
147+
## V7: Verificador de Rastreabilidade Bibliografica (DOI)
148+
149+
**Objetivo**: Verificar que afirmacoes factuais em textos academicos possuem respaldo em DOI verificavel.
150+
151+
**Metodo**:
152+
1. Extrair todos os DOIs do texto via regex (`10.\d{4,}/...`)
153+
2. Identificar padroes de afirmacao factual sem DOI proximo (ate 200 caracteres)
154+
3. Validar formato dos DOIs fornecidos
155+
156+
**Padroes de afirmacao detectados**:
157+
- "Estudos mostram que..."
158+
- "Conforme a literatura..."
159+
- "Evidencias sugerem..."
160+
- "E comprovado que..."
161+
162+
**Exemplo**:
163+
```
164+
Input: "Estudos mostram que IA melhora educacao."
165+
Output: ALERTA - afirmacao factual sem DOI de respaldo
166+
```
167+
168+
**Criterios de aprovacao**:
169+
- Zero afirmacoes factuais sem DOI de respaldo proximo
170+
- Todos os DOIs fornecidos no formato valido
171+
172+
**Integracao com ecossistema**: Conecta-se ao CT-006 do pipeline TDD academico (EVO-8).
173+
174+
---
175+
176+
## V8: Verificador de Anonimato/Privacidade
177+
178+
**Objetivo**: Detectar identificadores diretos e indiretos em documentos que exigem anonimato (anteprojetos, artigos para revisao cega).
179+
180+
**Metodo**:
181+
1. Busca por identificadores diretos: nomes proprios compostos, CPF, RG, e-mail
182+
2. Busca por identificadores indiretos: perfis GitHub, metricas especificas (N estrelas + M forks), mencao de autoria
183+
3. Busca por nomes de produtos publicos que permitem busca reversa do autor
184+
185+
**Protocolo EVO-8**: Identificadores indiretos sao tao perigosos quanto nomes. Qualquer combinacao que permita busca reversa em 30 segundos e considerada violacao.
186+
187+
**Exemplo**:
188+
```
189+
Input: "A plataforma OpenCode (17 estrelas, 7 forks) foi desenvolvida por..."
190+
Output: ALERTA - nome_produto_publico + metricas GitHub = identificacao indireta
191+
```
192+
193+
**Severidades**:
194+
- ALTA: nome proprio, CPF, e-mail, perfil GitHub, metricas unicas
195+
- MEDIA: nome de produto publico (sugestao: substituir por descricao generica)
196+
197+
**Integracao**: Conecta-se ao CT-001 do pipeline TDD academico e a ADR security-001 (EVO-8).
198+
199+
---
200+
201+
## V9: Verificador de Conformidade Normativa (LGPD/Etica)
202+
203+
**Objetivo**: Verificar conformidade de textos academicos com a LGPD (Lei 13.709/2018) e a Resolucao PRPPG/UFC nº 39/2025.
204+
205+
**Frameworks suportados**:
206+
- `lgpd`: Lei Geral de Protecao de Dados Pessoais
207+
- `etica_pesquisa`: Resolucao PRPPG/UFC 39/2025 (uso de IA na pesquisa)
208+
209+
**Checks LGPD**:
210+
| ID | Verificacao | Art. LGPD |
211+
|----|-------------|-----------|
212+
| dados_pessoais_processamento | Dados pessoais mencionados com protecao? | Art. 6º, 7º |
213+
| dados_sensiveis | Dados sensiveis com consentimento/CEP? | Art. 11 |
214+
| transferencia_internacional | Transferencia para nuvem/externo com garantias? | Art. 33 |
215+
| direitos_titular | Direitos do titular (acesso, exclusao) mencionados? | Art. 17-21 |
216+
217+
**Checks Etica em Pesquisa**:
218+
| ID | Verificacao | Norma |
219+
|----|-------------|-------|
220+
| declaracao_ia | Uso de IA declarado? | Res. 39/2025 |
221+
| plagio_ia | IA como assistente (nao autora)? | Res. 39/2025 |
222+
| reprodutibilidade | Resultados auditaveis/reprodutiveis? | Res. 39/2025 |
223+
| consentimento_participantes | TCLE e CEP para participantes? | Res. 39/2025 |
224+
225+
**Metodo**: Para cada check, busca trigger pattern no texto. Se trigger presente mas safeguard ausente, dispara ALERTA.
226+
227+
**Exemplo**:
228+
```
229+
Input: "Dados pessoais serao enviados para nuvem OpenAI."
230+
Output: ALERTA - transferencia_internacional sem garantias (Art. 33 LGPD)
231+
```
232+
233+
**Integracao**: Conecta-se ao CT-009 do pipeline TDD academico (declaracao de IA) e ao Modulo D do guia pratico (LGPD).
234+
235+
---
236+
237+
## Resumo de Versoes (EVO-8)
238+
239+
| Verificador | v1.0 | v2.0 (EVO-8) |
240+
|------------|------|---------------|
241+
| V1 | Analise dimensional basica (10 unidades) | +40 unidades, +equivalencias |
242+
| V2 | SymPy simplify | Mantido estavel |
243+
| V3 | Random search [-100,100] | SymPy solve + grid search + random fallback |
244+
| V4 | Shapiro-Wilk, Pearson r | +Bootstrap CI, +Mann-Whitney, +Cohen's d, +one-sample t-test |
245+
| V5 | Tolerancia IEEE 754 | Mantido estavel |
246+
| V6 | Substituicao manual | checkodesol + substituicao fallback |
247+
| V7 || **[NOVO]** Rastreabilidade DOI |
248+
| V8 || **[NOVO]** Anonimato/Privacidade |
249+
| V9 || **[NOVO]** Conformidade LGPD/Etica |

0 commit comments

Comments
 (0)